Misplaced Pages

RISC Single Chip

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The RISC Single Chip , or RSC , is a single-chip microprocessor developed and fabricated by International Business Machines (IBM). The RSC was a feature-reduced single-chip implementation of the POWER1 , a multi-chip central processing unit (CPU) which implemented the POWER instruction set architecture (ISA). It was used in entry-level workstation models of the IBM RS/6000 family, such as the Model 220 and 230.

#970029

28-458: The RSC operated at frequencies of 33 and 45 MHz. It has three execution units : a fixed point unit , floating point unit and branch processor; and an 8 KB unified instruction and data cache. Like the POWER1, the memory controller and I/O was tightly integrated, with the functional units responsible for the functions: a memory interface unit and sequencer unit; residing on the same die as

56-486: A 14.9 mm by 15.2 mm (226.48 mm) die fabricated by IBM in a complementary metal-oxide semiconductor (CMOS) process with a minimal feature size of 0.8 μm and three levels of wiring. It is packaged in a 36 mm by 36 mm ceramic pin grid array module which had 201 signal pins. It required a 3.6 volt power supply and consumed 4 watts during operation at 33 MHz. Execution unit In computer engineering , an execution unit ( E-unit or EU )

84-471: A certain datatype , such as integers or floating-points . It is common for modern processing units to have multiple parallel functional units within its execution units, which is referred to as superscalar design. The simplest arrangement is to use a single bus manager unit to manage the memory interface and the others to perform calculations. Additionally, modern execution units are usually pipelined . This computer-engineering -related article

112-417: A clock cycle by simultaneously dispatching multiple instructions to different execution units on the processor. It therefore allows more throughput (the number of instructions that can be executed in a unit of time) than would otherwise be possible at a given clock rate . Each execution unit is not a separate processor (or a core if the processor is a multi-core processor ), but an execution resource within

140-418: A single CPU such as an arithmetic logic unit . While a superscalar CPU is typically also pipelined , superscalar and pipelining execution are considered different performance enhancement techniques. The former (superscalar) executes multiple instructions in parallel by using multiple execution units, whereas the latter (pipeline) executes multiple instructions in the same execution unit in parallel by dividing

168-436: A superscalar CPU the dispatcher reads instructions from memory and decides which ones can be run in parallel, dispatching each to one of the several execution units contained inside a single CPU. Therefore, a superscalar processor can be envisioned as having multiple parallel pipelines, each of which is processing instructions simultaneously from a single instruction thread. Most modern superscalar CPUs also have logic to reorder

196-479: A three-stage pipeline consisting of decode , execute and writeback stages. Some instructions require several cycles in the execute stage before they are completed. The floating point unit executes floating point instructions. Unlike the POWER1, the RSC does not have register renaming capability due to a limited die area in which the unit must fit in. To further save die area, the floating point multiply-add array

224-400: Is 32 bits wide. To perform 64-bit ( double-precision ) operations, the operands are broken into two, and the instruction passes twice through the multiply-add array. The floating point pipeline consists of four stages, decode , multiply , add and writeback . The RSC has an 8 KB unified cache instead of the separate instruction and large data caches like the POWER1. The unified cache

252-450: Is 72 bits wide, with 64 bits used for the data path and 8 bits used for error correcting code (ECC). The memory interface unit manages the bus and performs ECC checks on data coming into the processor. The ECC logic is capable of correcting single-bit errors. Compared to the POWER1, the RSC memory data bus is narrower and uses industry standard SIMMs instead of custom memory cards. The RSC contained approximately one million transistors on

280-435: Is a stub . You can help Misplaced Pages by expanding it . Superscalar processor A superscalar processor (or multiple-issue processor ) is a CPU that implements a form of parallelism called instruction-level parallelism within a single processor. In contrast to a scalar processor , which can execute at most one single instruction per clock cycle, a superscalar processor can execute more than one instruction during

308-479: Is a part of a processing unit that performs the operations and calculations forwarded from the instruction unit . It may have its own internal control sequence unit (not to be confused with a CPU 's main control unit ), some registers , and other internal units such as an arithmetic logic unit , address generation unit , floating-point unit , load–store unit , branch execution unit or other smaller and more specific components, and can be tailored to support

SECTION 10

#1732773225971

336-426: Is no assurance otherwise and failure to detect a dependency would produce incorrect results. No matter how advanced the semiconductor process or how fast the switching speed, this places a practical limit on how many instructions can be simultaneously dispatched. While process advances will allow ever greater numbers of execution units (e.g. ALUs), the burden of checking instruction dependencies grows rapidly, as does

364-454: Is removed and delegated to the compiler . Explicitly parallel instruction computing (EPIC) is like VLIW with extra cache prefetching instructions. Simultaneous multithreading (SMT) is a technique for improving the overall efficiency of superscalar processors. SMT permits multiple independent threads of execution to better utilize the resources provided by modern processor architectures. The fact that they are independent means that we know that

392-480: Is the difference between scalar and vector arithmetic. A superscalar processor is a mixture of the two. Each instruction processes one data item, but there are multiple execution units within each CPU thus multiple instructions can be processing separate data items concurrently. Superscalar CPU design emphasizes improving the instruction dispatcher accuracy and allowing it to keep the multiple execution units in use at all times. This has become increasingly important as

420-428: Is two-way set associative and uses a store-through policy with no reload on a store miss and a least recently used (LRU) replacement policy. It has a cache line size of 64 bytes, and each cache line is sectored into four quadwords (16 bytes), with each quadword given its own valid bit in the cache directory. During each cycle, four words can be read from it and two doublewords can be written to it. The memory data bus

448-644: The ALU , integer multiplier , integer shifter, FPU , etc. There may be multiple versions of each execution unit to enable the execution of many instructions in parallel. This differs from a multi-core processor that concurrently processes instructions from multiple threads, one thread per processing unit (called "core"). It also differs from a pipelined processor , where the multiple instructions can concurrently be in various stages of execution, assembly-line fashion. The various alternative techniques are not mutually exclusive—they can be (and frequently are) combined in

476-402: The complexity of register renaming circuitry to mitigate some dependencies. Collectively the power consumption , complexity and gate delay costs limit the achievable superscalar speedup. However even given infinitely fast dependency checking logic on an otherwise conventional superscalar CPU, if the instruction stream itself has many dependencies, this would also limit the possible speedup. Thus

504-419: The degree of intrinsic parallelism in the code stream forms a second limitation. Collectively, these limits drive investigation into alternative architectural changes such as very long instruction word (VLIW), explicitly parallel instruction computing (EPIC), simultaneous multithreading (SMT), and multi-core computing . With VLIW, the burdensome task of dependency checking by hardware logic at run time

532-413: The execution unit into different phases. In the "Simple superscalar pipeline" figure, fetching two instructions at the same time is superscaling, and fetching the next two before the first pair has been written back is pipelining. The superscalar technique is traditionally associated with several identifying characteristics (within a given CPU): Seymour Cray 's CDC 6600 from 1964 is often mentioned as

560-593: The first superscalar design. The 1967 IBM System/360 Model 91 was another superscalar mainframe. The Intel i960 CA (1989), the AMD 29000 -series 29050 (1990), and the Motorola MC88110 (1991), microprocessors were the first commercial single-chip superscalar microprocessors. RISC microprocessors like these were the first to have superscalar execution, because RISC architectures free transistors and die area which can be used to include multiple execution units and

588-448: The instruction of one thread can be executed out of order and/or in parallel with the instruction of a different one. Also, one independent thread will not produce a pipeline bubble in the code stream of a different one, for example, due to a branch. Superscalar processors differ from multi-core processors in that the several execution units are not entire processors. A single processor is composed of finer-grained execution units such as

SECTION 20

#1732773225971

616-452: The instructions to try to avoid pipeline stalls and increase parallel execution. Available performance improvement from superscalar techniques is limited by three key areas: Existing binary executable programs have varying degrees of intrinsic parallelism. In some cases instructions are not dependent on each other and can be executed simultaneously. In other cases they are inter-dependent: one instruction impacts either resources or results of

644-463: The more rigid methods used in the simpler P5 Pentium ; it also simplified speculative execution and allowed higher clock frequencies compared to designs such as the advanced Cyrix 6x86 . The simplest processors are scalar processors. Each instruction executed by a scalar processor typically manipulates one or two data items at a time. By contrast, each instruction executed by a vector processor operates simultaneously on many data items. An analogy

672-753: The number of units has increased. While early superscalar CPUs would have two ALUs and a single FPU , a later design such as the PowerPC 970 includes four ALUs, two FPUs, and two SIMD units. If the dispatcher is ineffective at keeping all of these units fed with instructions, the performance of the system will be no better than that of a simpler, cheaper design. A superscalar processor usually sustains an execution rate in excess of one instruction per machine cycle . But merely processing multiple instructions concurrently does not make an architecture superscalar, since pipelined , multiprocessor or multi-core architectures also achieve that, but with different methods. In

700-468: The other. The instructions a = b + c; d = e + f can be run in parallel because none of the results depend on other calculations. However, the instructions a = b + c; b = e + f might not be runnable in parallel, depending on the order in which the instructions complete while they move through the units. Although the instruction stream may contain no inter-instruction dependencies, a superscalar CPU must nonetheless check for that possibility, since there

728-459: The processor. The RSC contains nine functional units: fixed-point execution unit (FXU), floating-point execution unit (FPU), the memory management unit (MMU), memory interface unit (MIU), sequencer unit, common on-chip processor unit (COP), instruction fetch unit, and instruction queue and dispatch unit. The fixed point unit executes integer instructions, generates addresses in load store operations and some portions of branch instructions. It has

756-477: The traditional uniformity of the instruction set favors superscalar dispatch (this was why RISC designs were faster than CISC designs through the 1980s and into the 1990s, and it's far more complicated to do multiple dispatch when instructions have variable bit length). Except for CPUs used in low-power applications, embedded systems , and battery -powered devices, essentially all general-purpose CPUs developed since about 1998 are superscalar. The P5 Pentium

784-459: Was the first superscalar x86 processor; the Nx586 , P6 Pentium Pro and AMD K5 were among the first designs which decode x86 -instructions asynchronously into dynamic microcode -like micro-op sequences prior to actual execution on a superscalar microarchitecture ; this opened up for dynamic scheduling of buffered partial instructions and enabled more parallelism to be extracted compared to

#970029