From WikiChip
Editing acorn/microarchitectures/arm3

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.

Latest revision Your text
Line 17: Line 17:
 
|l1 per=core
 
|l1 per=core
 
|l1 desc=64-way set associative
 
|l1 desc=64-way set associative
|core name=ARM3
 
|core name 2=ARM250
 
 
|predecessor=ARM2
 
|predecessor=ARM2
 
|predecessor link=acorn/microarchitectures/arm2
 
|predecessor link=acorn/microarchitectures/arm2
 
|successor=ARM6
 
|successor=ARM6
 
|successor link=arm holdings/microarchitectures/arm6
 
|successor link=arm holdings/microarchitectures/arm6
|successor 2=ARM250
 
|successor 2 link=arm holdings/microarchitectures/arm250
 
 
}}
 
}}
 
'''ARM3''' is the second-generation commercial [[ARM]] implementation designed by [[Acorn Computers]] as a successor to the {{\\|ARM2}}.
 
'''ARM3''' is the second-generation commercial [[ARM]] implementation designed by [[Acorn Computers]] as a successor to the {{\\|ARM2}}.
  
 
== History ==
 
== History ==
{{see also|arm/history|l1=ARM's History}}
+
The ARM3 builds on the success of the {{\\|ARM2}} with higher performance through the introduction of on-die cache but without any major changes to the core itself. The ARM3 was designed by a team of four engineers in nine months. The ARM3 can operate at up to 25 MHz with a peak performance of 25 MIPS and a sustainable performance of 12 MIPS.
The ARM3 builds on the success of the {{\\|ARM2}} with higher performance through the introduction of on-die cache but without any major changes to the core itself. The ARM3 was designed by a team of four engineers in nine months and was introduced in [[1989]]. The ARM3 initially appeared with a 25 MHz crystal, In the Acorn A5000, with a peak performance of 25 MIPS and a sustainable performance of 12.72 MIPS. Later Acorn A540 and A5000 were supplied with ARM3 clocked the chip at 33MHz, with 3rd parties supplying chips clocked at 36 MHZ, to upgrade earlier ARM2 machines, from a sustained 4.85 to 17.44 MIPS.
 
  
 
== Process Technology ==
 
== Process Technology ==
 
{{see also|1.5 µm process}}
 
{{see also|1.5 µm process}}
The ARM3 was implemented on a [[1.5 µm]] double-level metal (DLM) [[CMOS]] process.
+
The ARM3 was implemented on a [[1.5 µm]] double-level metal [[CMOS]] process.
  
 
== Architecture ==
 
== Architecture ==
Line 52: Line 47:
  
 
* <code>SWP</code> - Swap word memory-register, Atomic (uninterruptible)
 
* <code>SWP</code> - Swap word memory-register, Atomic (uninterruptible)
 
=== Block Diagram ===
 
==== Entire Chip ====
 
: [[File:arm3 block diagram.svg|600px]]
 
 
==== Core ====
 
: [[File:arm2 block diagram.svg|650px]]
 
  
 
=== Memory Hierarchy ===
 
=== Memory Hierarchy ===
Line 67: Line 55:
 
*** Write-through policy
 
*** Write-through policy
 
*** Per core
 
*** Per core
* System DRAM
+
** System DRAM
** Up to 64 MiB
+
*** Up to 64 MiB
  
 
== Overview ==
 
== Overview ==
 
=== Control ===
 
=== Control ===
The ARM3's control logic is a state machine implemented as three [[PLA]]s. Layout was generated automatically using EDA tools using [[Psuedo nMOS]] logic in order to save on space, albeit at the slight expense of static power dissipation.
+
The ARM3's control logic is a state machine implemented as three [[PLA]]s. Layout was generated automatically using [[Psuedo nMOS]] in order to save on space, albeit at the slight expense of static power dissipation.
 
 
 
=== Core ===
 
=== Core ===
 
==== Pipeline ====
 
==== Pipeline ====
{{main|acorn/microarchitectures/arm2#Pipeline|l1=ARM2 Pipeline}}
+
{{main|arm holdings/microarchitectures/arm2#Pipeline|l1=ARM2 Pipeline}}
 
ARM3's pipeline is identical to the ARM2.
 
ARM3's pipeline is identical to the ARM2.
 
 
=== Clock Generator ===
 
=== Clock Generator ===
To increase performance, Acorn needed to increase the clock speed. This was not possible without leaving commodity DRAM for higher speed and more expensive DRAM. The alternative approach Acorn went with is an intermediate cache on-die. The ARM3 has two clock inputs, one fast one for the internal cache and one slower one for the external memory accesses. The two inputs are entirely independent allowing the system to optimize for both (fast cache and slower memory) at the same time.
+
{{empty section}}
 
 
 
=== Coprocessor Interface ===
 
=== Coprocessor Interface ===
Acorn introduced cache with the ARM3. This meant that most instructions are now coming from the on-chip cache instead of system memory. The way the coprocessor was originally designed in the {{\\|ARM2}} meant that the coprocessor could simply access its instructions from memory. This was no longer compatible with the new design. Acorn solved this problem by making the coprocessor lag behind exactly one cycle. Instructions that are identified as being coprocessor instructions are broadcasted off-chip on the following cycle. This was done using the processor's 32-bit data port along with timing and handshaking signals.
+
{{empty section}}
 
 
 
=== Cache ===
 
=== Cache ===
[[File:arm3 cache.svg|right|500px]]
+
{{empty section}}
The ARM3's cache consists of a RAM and 4 tag [[CAM]] banks of 64 22-bit entries each for 64-way set associative. The choice of a 4-way split was entirely driven by the great reduction in power dissipation (so only 1/4 of the CAM has to be active at any one time), at the cost of negligible performance. Each CAM entry refers to one line of data in the RAM. Each line consists of four 32-bit words (i.e., 128 bit lines) with the low-order address bits being used for the select lines.
 
 
 
On a miss, a [[pseudo-random number generator]] is used to select an entry to evict and replace. On replacement a full line of four words is fetched from memory to minimize consecutive read operations. The cache uses a write-through update policy to ensure consistency. On a hit the appropriate line address are generated to be retrieved by the RAM.
 
 
 
The CAM consists of individual cells of [[six-transistor storage elements]] with a three-transistor [[comparators]]. The cell size was reported by Acorn to be 31.2 µm x 36.8 µm (1148.16 µm²) on a [[1.5 µm process]]. The entry matching and address encoding logic uses dynamic logic in order to reduce power. The [[RAM]] is arranged in array of 128 x 256 cells with a 3-bit column select, producing a 32-bit output. The SRAM cells used were standard [[6T]] SRAM cells measuring 19.6 µm x 28.4 µm. Self-timing logic is used to disable the 32 [[sense amplifiers]] when the data becomes valid in order to reduce power.
 
 
 
{{clear}}
 
  
 
== Die ==
 
== Die ==
Line 115: Line 92:
  
 
== All ARM3 Chips ==
 
== All ARM3 Chips ==
<!-- NOTE:
+
{{empty section}}
          This table is generated automatically from the data in the actual articles.
 
          If a microprocessor is missing from the list, an appropriate article for it needs to be
 
          created and tagged accordingly.
 
 
 
          Missing a chip? please dump its name here: http://en.wikichip.org/wiki/WikiChip:wanted_chips
 
-->
 
{{comp table start}}
 
<table class="comptable sortable tc11 tc12 tc13">
 
<tr class="comptable-header"><th>&nbsp;</th><th colspan="12">List of ARM3-based Processors</th></tr>
 
{{comp table header 1|cols=Process, Launched, Frequency, Power Dissipation, Max Memory}}
 
{{#ask: [[Category:all microprocessor models]] [[instance of::microprocessor]] [[microarchitecture::ARM3]]
 
|?full page name
 
|?model number
 
|?microarchitecture
 
|?first launched
 
|?base frequency#MHz
 
|?power dissipation
 
|?max memory#MiB
 
|format=template
 
|template=proc table 3
 
|userparam=7
 
|mainlabel=-
 
|valuesep=,
 
}}
 
{{comp table count|ask=[[Category:all microprocessor models]] [[instance of::microprocessor]] [[microarchitecture::ARM3]]}}
 
</table>
 
{{comp table end}}
 
  
 
== References ==
 
== References ==
 
* Thomas, A. R. P., et al. "A 2nd Generation 32b RISC Processor with 4KByte Cache." Solid-State Circuits Conference, 1989. ESSCIRC'89. Proceedings of the 15th European. IEEE, 1989.
 
* Thomas, A. R. P., et al. "A 2nd Generation 32b RISC Processor with 4KByte Cache." Solid-State Circuits Conference, 1989. ESSCIRC'89. Proceedings of the 15th European. IEEE, 1989.

Please note that all contributions to WikiChip may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see WikiChip:Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)
codenameARM3 +
core count1 +
designerAcorn Computers +
first launched1989 +
full page nameacorn/microarchitectures/arm3 +
instance ofmicroarchitecture +
instruction set architectureARMv2a +
manufacturerVLSI Technology + and Sanyo +
microarchitecture typeCPU +
nameARM3 +
pipeline stages3 +
process1,500 nm (1.5 μm, 0.0015 mm) +