<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">CS</journal-id><journal-title-group><journal-title>Circuits and Systems</journal-title></journal-title-group><issn pub-type="epub">2153-1285</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/cs.2017.85009</article-id><article-id pub-id-type="publisher-id">CS-76279</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject><subject> Engineering</subject><subject> Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  A High Performance and Energy Efficient Microprocessor with a Novel Restricted Dynamically Reconfigurable Accelerator
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Itaru</surname><given-names>Hida</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Shinya</surname><given-names>Takamaeda-Yamazaki</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Masayuki</surname><given-names>Ikebe</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Masato</surname><given-names>Motomura</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Tetsuya</surname><given-names>Asai</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Graduate School of Information Science and Technology, Hokkaido University, Sapporo, Japan</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>hida@lalsie.ist.hokudai.ac.jp(IH)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>19</day><month>05</month><year>2017</year></pub-date><volume>08</volume><issue>05</issue><fpage>134</fpage><lpage>147</lpage><history><date date-type="received"><day>April</day>	<month>2,</month>	<year>2017</year></date><date date-type="rev-recd"><day>Accepted:</day>	<month>May</month>	<year>16,</year>	</date><date date-type="accepted"><day>May</day>	<month>19,</month>	<year>2017</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  In the era of Internet of Things, the battery life of edge devices must be extended for sensing connection to the Internet. We aim to reduce the power consumption of the microprocessor embedded in such devices by using a novel dynamically reconfigurable accelerator. Conventional microprocessors consume a large amount of power for memory access, in registers, and for the control of the processor itself rather than computation; this decreases the energy efficiency. Dynamically reconfigurable accelerators reduce such redundant power by computing in parallel on reconfigurable switches and processing element arrays (often consisting of an arithmetic logic unit (ALU) and registers). We propose a novel dynamically reconfigurable accelerator “DYNaSTA” composed of a dynamically reconfigurable data path and static ALU arrays. The static ALU arrays process instructions in parallel without registers and improve energy efficiency. The dynamically reconfigurable data path includes registers and many switches dynamically reconfigured to resolve operand dependencies between instructions mapped on the static ALU array, and forwards appropriate operands to the static ALU array. Therefore, the DYNaSTA accelerator has more flexibility while improving the energy efficiency compared with the conventional dynamically reconfigurable accelerators. We simulated the power consumption of the proposed DYNaSTA accelerator and measured the fabricated chip. As a result, the power consumption was reduced by 69% to 86%, and the energy efficiency improved 4.5 to 13 times compared to a general RISC microprocessor.
 
</p></abstract><kwd-group><kwd>Embedded Microprocessor</kwd><kwd> Reconfigurable</kwd><kwd> Low-Power</kwd><kwd> Accelerator</kwd><kwd> Digital Circuit</kwd><kwd> Architecture</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The overwhelming trend toward Internet of Things explains why low-energy embedded microprocessors (EMPs) are becoming increasingly important. Sources of energy inefficiency in EMP architectures are fairly well understood: the need to 1) fetch/decode every instruction from memory; 2) write/read register files to acquire/store operands per every instruction, and 3) clock numerous numbers of F/Fs for pipelining multiple instructions on a data path. The power consumption generated by these factors is not directly involved in computation.</p><p>Among the power consumption of general EMP, the proportion occupied by the ALU responsible for computation is approximately 10%, and the remaining 90% is occupied by redundant power irrelevant to computation (<xref ref-type="fig" rid="fig1">Figure 1</xref>). That is, by reducing such redundant power, we can improve the power efficiency of the EMP without degrading the computing performance. Thus, we may choose to “statically” map those instructions in heavily executed “recursive codes” to an array of ALUs prior to their execution. By running the codes only as combinatory data paths with no registers, 1)-3) redundancies can be drastically reduced.</p><p>Although this “reconfigurable accelerator” solution looks straightforward and attractive, there is an inherent drawback: it is hard to cope with complex control flows (i.e., lots of branches) typically in embedded applications, which explain why previous proposals have focused on simple code segments that do not have a branch. Green Droid [<xref ref-type="bibr" rid="scirp.76279-ref2">2</xref>] is a configurable processor for mobile devices with Android OS. The processor improves power efficiency by processing the hot path (most recursive code) of Android OS in hardware, but it has no versatility to other operating systems. ADRES [<xref ref-type="bibr" rid="scirp.76279-ref3">3</xref>] is a processor in which dynamically reconfigurable function units (FU) are coupled to a very long instruction word (VLIW) processor. The processor improves performance by complementarily computing the hot path with the VLIW processor and FU array. However, the FU array cannot handle hot paths including multiple branch instructions, causing a decrease in energy efficiency. CMA [<xref ref-type="bibr" rid="scirp.76279-ref4">4</xref>] is a reconfigurable processor with a processing element (PE) array consisting only of combinational circuits and it can be customized but cannot be dynamically reconfigured during execution. Therefore, although CMA is superior to conventional dynamically reconfigurable</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Example of EMP power consumption breakdown [<xref ref-type="bibr" rid="scirp.76279-ref1">1</xref>] </title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x2.png"/></fig><p>processors such as MuCCRA [<xref ref-type="bibr" rid="scirp.76279-ref5">5</xref>] and DRP [<xref ref-type="bibr" rid="scirp.76279-ref6">6</xref>] in power consumption, it has low flexibility and requires an external controller in order to execute a large-scale program.</p><p>As mentioned example above, the conventional reconfigurable processor is unable to combine power efficiency and flexibility. Based on this observation, we recently proposed an abstract architecture for achieving both energy efficiency and versatility in control-rich embedded applications [<xref ref-type="bibr" rid="scirp.76279-ref7">7</xref>] . The architecture we proposed consists of a static arithmetic logic unit (ALU) array without registers and data paths that contains dynamically reconfigurable switches and registers, where the ALU array improves power efficiency and dynamically reconfigurable data paths ensure versatility. The contribution of this paper is to materialize the concept into executable micro-architecture, design/verify it in a silicon chip, and evaluate its energy efficiency.</p><p>In Section 2, we describe the architecture of the proposed DYNaSTA accelerator. The accelerator consists of a static data path, a dynamically reconfigurable data path, and circuits for controlling them. In Section 3, we show the simulation results for the DYNaSTA accelerator and the measurement results of the fabricated chip. The processor with the DYNaSTA accelerator showed reduced power consumption by 69% to 86% compared to general processors. In Section 4, we will summarize the study.</p></sec><sec id="s2"><title>2. Architecture</title><p>The key innovation in our proposal, a DYNaSTA reconfigurable accelerator, shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>, is to combine two distinctive array structures different in nature, namely, a dynamic operand forwarding matrix (DYN) and a static ALU array (STA). STA computes an instruction sequence in parallel and plays a key role in achieving high-energy efficiency, where DYN is dynamically reconfigured while the accelerator is running and plays a key role to achieve versatility.</p><p>The DYNaSTA accelerator executes instructions by the method shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>. When an instruction sequence to be executed by DYNaSTA is extracted, each instruction is mapped on the STA based on the data flow between</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> The reconfigurable datapath in the proposed DYNaSTA accelerator consists of a dynamic operand-forwarding matrix and static ALU array</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x3.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Code mapping policy: (a) an example code, (b) extracted data flow, (c) extracted operand dependency, and (d) mapping on DYN and STA</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x4.png"/></fig><p>the instructions, that is, the operand dependency, and the STA operates the instructions in parallel. If the data flow changes during operation because of the execution of a branch instruction, the switches of DYN are dynamically reconfigured and an appropriate data flow is constructed.</p><p>In the following subsection, we will describe in detail the architecture of each circuit included in the DYNaSTA accelerator.</p><sec id="s2_1"><title>2.1. Static ALU Array</title><p>STA features a non-fixed number of stages, where each stage has several ALUs sharing a set of source/destination lines (<xref ref-type="fig" rid="fig4">Figure 4</xref>). To reduce the number of switches, hence improving energy efficiency, only parallel instructions are mapped onto a same stage, where branch/jump and load/store instructions go to the first and last ALUs, respectively (<xref ref-type="fig" rid="fig3">Figure 3</xref>(b) and <xref ref-type="fig" rid="fig3">Figure 3</xref>(d)). The instructions dependent on preceding ones are mapped onto the next stage. Conditional execution is supported for discarding short forward branches. An appropriate number of STA stages is dependent on the sizes of the target codes, whereas that of ALUs per stage will range from 2 to 8, as in superscalar/VLIW architectures. Note there are no registers and hence no clocks in STA.</p><p>The difficulty in serving branches in a reconfigurable accelerator lies in that their outcome can never be known a priori: for example (<xref ref-type="fig" rid="fig3">Figure 3</xref>(c)), the “r4” operand in #2 may be produced by #3 instead of #1 when the #4 branch is taken. Efforts to accommodate this dynamic nature in ALU arrays such as STA unavoidably degrade its simplicity and regularity, hence incurring energy inefficiency.</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Block diagram of static ALU array (STA)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x5.png"/></fig></sec><sec id="s2_2"><title>2.2. Dynamic Operand-Forwarding Matrix</title><p>DYN is a multi-context, bidirectional operand-forwarding matrix for solving this difficulty: it is dynamically reconfigured only when operand dependencies among instructions are altered on a branch (<xref ref-type="fig" rid="fig3">Figure 3</xref>(c) and <xref ref-type="fig" rid="fig3">Figure 3</xref>(d)). DYN is composed of temporary registers for storing operand values of each instruction and a large number of switches, as shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>. When the data flow of the program transits while the accelerator is running, the switches are dynamically switched and appropriate data flow is constructed.</p><p><xref ref-type="fig" rid="fig6">Figure 6</xref> represents an example in which fibonacci, used as one of the benchmark programs in the evaluation, is mapped to DYNaSTA. In <xref ref-type="fig" rid="fig6">Figure 6</xref>, it is shown that the datapath on DYN changes according to each context, and the appropriate operands are forwarded to the STA. Keeping power-consuming dynamic reconfiguration away from the massive ALU array (and leaving it static) is a key for achieving energy efficiency in DYNaSTA architecture.</p></sec><sec id="s2_3"><title>2.3. Context Controller</title><p>The context controller shown in <xref ref-type="fig" rid="fig7">Figure 7</xref> controls the transition of the context during execution. As the base processor starts executing the program, functions or subroutines processed by DYNaSTA are loaded from the instruction memory, and information of each context contained in them is stored in the configuration memory and the context memory. The context information is embedded in the executable file by recompiling the original executable file with the dedicated compiler; the function to be accelerated is also decided.</p><p>The context information includes DYN’s switch configuration information (configuration), the number of clock cycles required to execute the context (delay), and a return address. When the next context is selected according to the</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Block diagram of dynamic operand- forwarding matrix (DYN)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x6.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Assembly code of fibonacci and its mapping on DYNaSTA. When the context of the program transitions, DYN is dynamically reconfigured</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x7.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Block diagrams for configuration loader and context controller. DYN is dynamically reconfigured by these circuits</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x8.png"/></fig><p>results of the branch instruction and the delay of the previous context is equal to the value of the clock counter (meaning that the previous context has been properly executed), the next context configuration information is sent to DYN. After DYNaSTA finishes executing the function, the base processor resumes program execution from the address of the instruction memory specified by the return address.</p></sec><sec id="s2_4"><title>2.4. Overall Architecture</title><p>We designed an EMP with this DYNaSTA accelerator into silicon (<xref ref-type="fig" rid="fig8">Figure 8</xref>). The base EMP is Mico32 [<xref ref-type="bibr" rid="scirp.76279-ref8">8</xref>] , which is chosen because of its typical RISC architecture and open-source RTL code. By treating “recursive codes” that are mapped onto DYNaSTA as subroutines, the read/write path between Mico32’s RF and DYN only needs to cover its arguments portion (four registers, <xref ref-type="fig" rid="fig8">Figure 8</xref>).</p></sec></sec><sec id="s3"><title>3. Evaluation</title><sec id="s3_1"><title>3.1. Instruction-Level Parallelism</title><p>Before simulating power consumption, we analyzed the optimal number of ALUs included in one stage of STA. If there are numerous unused ALUs, they generate unnecessary static power; in contrast, if there are only a few ALUs, instruction-level parallelism is reduced and computing performance is degraded. Therefore, we examined the relationship between the ALU occupancy and instruction-level parallelism through some programs containing many instructions from the benchmark set employed in the power-consumption simulation.</p><p><xref ref-type="fig" rid="fig9">Figure 9</xref> represents the result, in which the solid line represents the ALU occupancy, the dashed line represents the instruction-level parallelism, and the x-axis represents the number of ALUs per stage. The ALU occupancy depends linearly on the number of ALUs, whereas the instruction-level parallelism for crc32 and sbox is constant regardless of the number of ALUs. However, the instruction-level parallelism for sepia filter decreases when the number of ALUs is four. Therefore, we set the number of ALUs per stage to be five.</p><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Tight integration of Mico32 (base EMP) and the DYNaSTA accelerator</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x9.png"/></fig><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> ALU utilization and instruction-level parallelism</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x10.png"/></fig></sec><sec id="s3_2"><title>3.2. Power Simulation</title><p>Then, the number of stages of the STA is set to 10, the performance and power consumption of the DYNaSTA accelerator were evaluated using sample applications (<xref ref-type="table" rid="table1">Table 1</xref>) based on the synthesized netlist. <xref ref-type="fig" rid="fig1">Figure 1</xref>0 is a comparison of the power consumption when Mico32 and DYNaSTA execute the hot path of each application, that is, the most recursive code. As shown in the figure, the power consumption reduced by 69% to 86% due mainly to discarded instruction memory access. While Mico32 sequentially reads instructions from the instruction memory during program execution, DYNaSTA accesses the instruction memory only when generating configuration information (configuration phase) and does not access it during execution (running phase). Therefore, the power consumption to access the instruction memory has been greatly reduced. Logic power consumption is also reduced, as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>0, whose detailed breakdown is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>1 for the case of fibonacci.</p><p>From <xref ref-type="fig" rid="fig1">Figure 1</xref>0 and <xref ref-type="fig" rid="fig1">Figure 1</xref>1, it is clear that the 1) to 3) redundancies mentioned earlier were successfully removed. Since instructions are executed in parallel in STA, the proposed architecture not only reduces the power but also enhances the performance (<xref ref-type="fig" rid="fig1">Figure 1</xref>2) at the same frequency (100 MHz). As a result, the energy efficiency was improved 4.5 to 13 times from Mico32 for these sample codes.</p></sec><sec id="s3_3"><title>3.3. Measurement of Fabricated Chip</title><p>We fabricated the proposed DYNaSTA using a UMC 0.18 &#181;m process (see <xref ref-type="fig" rid="fig1">Figure 1</xref>3 and <xref ref-type="table" rid="table2">Table 2</xref>). Because of the area constraint, four STA stages were</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Summary of sample applications</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Application</th><th align="center" valign="middle" ># of instructions</th><th align="center" valign="middle" ># of branches</th><th align="center" valign="middle" >ALU utilization [%]</th><th align="center" valign="middle" ># of contexts</th></tr></thead><tr><td align="center" valign="middle" >fibonacci</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >sbox</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >crc32</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >36</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >sepia filter</td><td align="center" valign="middle" >22</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >44</td><td align="center" valign="middle" >3</td></tr></tbody></table></table-wrap><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Mico32 vs. DYNaSTA: total power consumption of sample applications</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x11.png"/></fig><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Mico32 vs. DYNaSTA: logic power consumption (fibonacci)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x12.png"/></fig><fig id="fig12"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>2</label><caption><title> DYNaSTA/Mico32 performance and energy efficiency improvement</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x13.png"/></fig><fig id="fig13"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>3</label><caption><title> Chip micrograph of proposed DYNaSTA (four stages)</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x14.png"/></fig><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Chip specifications</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Technology</th><th align="center" valign="middle" >UMC 0.18 &#181;m 1P6M CMOS</th></tr></thead><tr><td align="center" valign="middle" >Package</td><td align="center" valign="middle" >48-pin DIL</td></tr><tr><td align="center" valign="middle" >Die area</td><td align="center" valign="middle" >1.5 mm &#215; 1.5 mm</td></tr><tr><td align="center" valign="middle" >Gate count</td><td align="center" valign="middle" >86.5 K</td></tr><tr><td align="center" valign="middle" >Supply voltage</td><td align="center" valign="middle" >1.8 V core/3.3 V IO</td></tr><tr><td align="center" valign="middle" >Clock frequency</td><td align="center" valign="middle" >100 MHz</td></tr><tr><td align="center" valign="middle" ># of stages</td><td align="center" valign="middle" >4</td></tr><tr><td align="center" valign="middle" >Register file</td><td align="center" valign="middle" >32 bit &#215; 4 word</td></tr><tr><td align="center" valign="middle" ># of ALUs/stage</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" ># of contexts</td><td align="center" valign="middle" >6</td></tr></tbody></table></table-wrap><p>implemented. The register file is originally installed on Mico32, we implemented it on DYNaSTA because we only designed the accelerator in this study. Although the size of DYNaSTA is very small, extending it is quite straightforward because of its regular array structure.</p><p>We measured the power consumptions of the fabricated chip during the configuration and the running phases of the DYNaSTA with fibonacci. The experimental setup is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>4 and <xref ref-type="fig" rid="fig1">Figure 1</xref>5. We implemented Mico32 on the FPGA (field-programmable gate array) and sent the test vector and clock to the fabricated DYNaSTA chip. Since DYNaSTA require 3.3 V power supply for I/O and 1.8 V for core, we supplied each power to DYNaSTA using two power supply units. Then, we connected the power analyzer to the core power supply and measured the power consumption during running. <xref ref-type="fig" rid="fig1">Figure 1</xref>6 shows the measured power consumption versus clock frequencies for both the configuration and the running phases. Because of the limitation of our FPGA-based power-measurement workbench, the maximum frequency for the measurement was 80 MHz. We then predicted the power consumption at 100 MHz by linear interpolation of the measured data.</p><p><xref ref-type="table" rid="table3">Table 3</xref> shows a comparison of the simulated and measured (and interpolated) power consumption for both phases at 100 MHz. We observed a slight mismatch of approximately 2.6 mW for both phases between the simulated and measured data. This mismatch resulted from circuit elements of the fabricated chip that were not included in the power simulation model, such as the Mico32 register file. <xref ref-type="table" rid="table4">Table 4</xref> reveals the reasons for this energy efficiency: although DYNaSTA consumes &#215;18.5 more gates than Mico32, its average toggle rate is as low as &#215;0.06 of Mico32. Here, the average toggle rate represents the ratio of nodes that toggled synchronously with the rising (or falling) edge of the clock among all the nodes in the circuit per unit time. Specifically, gate-consuming STA features only a 1.8% toggle rate, which accounts for its relatively low power occupation in <xref ref-type="fig" rid="fig1">Figure 1</xref>1.</p><fig id="fig14"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>4</label><caption><title> Experimental configuration</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x15.png"/></fig><fig id="fig15"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>5</label><caption><title> Photograph of our power-measurement workbench</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x16.png"/></fig><fig id="fig16"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>6</label><caption><title> Measured power consumption vs. clock frequency for configuration and running phase</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x17.png"/></fig><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Comparison between simulation results and measurement results at 100 MHz</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ></th><th align="center" valign="middle" >Configuration [mW]</th><th align="center" valign="middle" >Run [mW]</th></tr></thead><tr><td align="center" valign="middle" >Simulation</td><td align="center" valign="middle" >4.03</td><td align="center" valign="middle" >8.57</td></tr><tr><td align="center" valign="middle" >Measurement (interpolated)</td><td align="center" valign="middle" >6.63</td><td align="center" valign="middle" >11.20</td></tr></tbody></table></table-wrap><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Mico32 vs. DYNaSTA: gate counts and average toggle rates (fibonacci)</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  ></th><th align="center" valign="middle" >Gate count [k gates]</th><th align="center" valign="middle" >Average toggle rate [%]</th></tr></thead><tr><td align="center" valign="middle"  rowspan="4"  >DYNaSTA</td><td align="center" valign="middle" >DYN</td><td align="center" valign="middle" >43.6</td><td align="center" valign="middle" >20.0</td></tr><tr><td align="center" valign="middle" >STA</td><td align="center" valign="middle" >322.9</td><td align="center" valign="middle" >1.8</td></tr><tr><td align="center" valign="middle" >Others</td><td align="center" valign="middle" >80.2</td><td align="center" valign="middle" >9.1</td></tr><tr><td align="center" valign="middle" >All</td><td align="center" valign="middle" >446.8</td><td align="center" valign="middle" >4.9</td></tr><tr><td align="center" valign="middle"  colspan="2"  >Mico32</td><td align="center" valign="middle" >24.1</td><td align="center" valign="middle" >76.8</td></tr><tr><td align="center" valign="middle"  colspan="2"  >Ratio (DYNaSTA/Mico32)</td><td align="center" valign="middle" >18.48</td><td align="center" valign="middle" >0.06</td></tr></tbody></table></table-wrap><fig id="fig17"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>7</label><caption><title> DYNaSTA SoC concept toward “Dark Sillicon” era</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/3-7601222x18.png"/></fig></sec></sec><sec id="s4"><title>4. Conclusion</title><p>In this study, we proposed a novel dynamically reconfigurable accelerator “DYNaSTA”. The DYNaSTA accelerator is a restricted dynamically reconfigurable accelerator composed of dynamically reconfigurable data paths called DYN and a static ALU array called STA, and we processes the hot path of the program on behalf of the base processor. The STA computes the instructions in parallel, and DYN is dynamically reconfigured to solve the change in the operand dependency due to branch instructions. We designed the proposed DYNaSTA accelerator to operate at a clock frequency of 100 MHz using UMC 0.18 μm process, and simulated power consumption and measured the fabricated chip. Through the experiment, we obtained the results that power consumption reduced from 69% to 86% and energy efficiency improved from 4.5 times to 13 times. Therefore, the proposed DYNaSTA accelerator was proved to be a reconfigurable accelerator combining flexibility and high-energy efficiency.</p><p>Filling a chip with simple, regular, and energy-efficient array like DYNaSTA can become an interesting solution in the “Dark Silicon” [<xref ref-type="bibr" rid="scirp.76279-ref9">9</xref>] era (<xref ref-type="fig" rid="fig1">Figure 1</xref>7). Here, existing domain-oriented low-power-circuit techniques such as DVFS and power gating can augment the architecture quite nicely. For instance, since only a few active stages propagate like a “wave” on the array, remaining numerous “silent” stages can be powered-off systematically to minimize the leak current (<xref ref-type="fig" rid="fig1">Figure 1</xref>7). Our next challenges include enhancing DYNaSTA with such low- power-circuit techniques as well as establishing code mapping SW.</p></sec><sec id="s5"><title>Cite this paper</title><p>Hida, I., Takamaeda-Yamazaki, S., Ikebe, M., Motomura, M. and Asai, T. (2017) A High Performance and Energy Efficient Microprocessor with a Novel Restricted Dynamically Reconfigurable Accelerator. Circuits and Systems, 8, 134-147. https://doi.org/10.4236/cs.2017.85009</p></sec></body><back><ref-list><title>References</title><ref id="scirp.76279-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Hameed, R., Qadeer, W., Wachs, M., Azizi, O., Solomatnikov, A., Lee, B.C., Richardson, S., Kozyrakis, C. and Horowitz, M. (2010) Understanding Sources of Inefficiency in General-purpose Chips. ISCA’10 Proceedings of the 37th Annual International Symposium on Computer Architecture, Saint-Malo, 19-23 June 2010, 37-47.</mixed-citation></ref><ref id="scirp.76279-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Swanson, S. and Tayelor, M.B. (2011) Greendroid: Exploring the Next Evolution in Smartphone Application Processors. IEEE Communications Magazine, 49, 112-119. https://doi.org/10.1109/MCOM.2011.5741155</mixed-citation></ref><ref id="scirp.76279-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Veredas, F.J., Scheppler, M., Moffat, W. and Mei, B. (2005) Custom Implementation of the Coarse-Grained Reconfigurable ADRES Architecture for Multimedia Purposes. Proceedings of the 2005 International Conference on Field Programmable Logic and Applications (FPL), Tampere, 24-26 August 2005, 106-111. https://doi.org/10.1109/FPL.2005.1515707</mixed-citation></ref><ref id="scirp.76279-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Ozaki, N., Yasuda, Y., Saito, Y., Ikebuchi, D., Kimura, M., Amano, H., Nakamura, H., Usami, K., Namiki, M. and Kondo M. (2011) Cool Mega-Arrays: Ultralow-Power Reconfigurable Accelerator Chips. IEEE Micro, 31, 6-18. https://doi.org/10.1109/MM.2011.94</mixed-citation></ref><ref id="scirp.76279-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Saito, Y., Sano, T., Kato, M., Tunbunheng, V., Yasuda, Y., Kimura, M. and Amano, H. (2010) MuCCRA-3: A Low Power Dynamically Reconfigurable Processor Array. Proceedings of the 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC), 18-21 January 2010, Taipei, 377-378. https://doi.org/10.1109/ASPDAC.2010.5419853</mixed-citation></ref><ref id="scirp.76279-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Motomura, M. (2002) A Dynamically Reconfigurable Processor Architecture. Microprocessor Forum, October 2002.</mixed-citation></ref><ref id="scirp.76279-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Hirao, T., Kim, D., Hida, I., Asai, T. and Motomura, M. (2013) A Restricted Dynamically Reconfigurable Architecture for Low Power Processors. Proceedings of the 2013 International Conference on Reconfigurable Computing and FPGAs (ReConFig), 9-11 December 2013, Cancun, 1-7.</mixed-citation></ref><ref id="scirp.76279-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">LatticeMico32 Open, Free 32-Bit Soft Processor.http://www.latticesemi.com/en/Products/DesignSoftwareAndIP/IntellectualProperty/IPCore/IPCores02/LatticeMico32.aspx</mixed-citation></ref><ref id="scirp.76279-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Esmaeilzadeh, E., Blem, E., Amant, R.S.T., Sankaralingam, K. and Burger, D. (2012) Dark Silicon and the End of Multicore Scaling. IEEE Micro, 32, 122-134. https://doi.org/10.1109/MM.2012.17</mixed-citation></ref></ref-list></back></article>