Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Control store

From Wikipedia, the free encyclopedia

Acontrol store is the part of aCPU'scontrol unit that stores the CPU'smicroprogram. It is usually accessed by amicrosequencer. A control store implementation whose contents are unalterable is known as aread-only memory (ROM) or Read Only Storage (ROS); one whose contents are alterable is known as a Writable Control Store (WCS).

Implementation

[edit]

Early use

[edit]

Early control stores were implemented as a diode-array accessed via address decoders, a form of read-only memory. This tradition dates back to theprogram timing matrix on theMIT Whirlwind, first described in 1947. ModernVLSI processors instead use matrices offield-effect transistors to build theROM and/orPLA structures used to control the processor as well as its internal sequencer in amicrocoded implementation.IBM System/360 used a variety of techniques:CCROS (Card Capacitor Read-Only Storage) on theModel 30,TROS (Transformer Read-Only Storage) on theModel 40, andBCROS (Balanced Capacitor Read-Only Storage) on Models50,65 and67.

Writable stores

[edit]

Some computers are built using "writable microcode" — rather than storing the microcode in ROM or hard-wired logic, the microcode is stored in a RAM called awritable control store orWCS. Such a computer is sometimes called aWritable Instruction Set Computer orWISC.[1] Many of these machines were experimental laboratory prototypes, such as the WISC CPU/16[2] and the RTX 32P.[3]

The originalSystem/360 models have read-only control store, but later System/360,System/370 and successor models load part or all of their microprograms from floppy disks or otherDASD into a writable control store consisting of ultra-high speedrandom-accessread–write memory. The System/370 architecture includes a facility calledInitial-Microprogram Load (IML orIMPL)[4] that can be invoked from the console, as part ofPower On Reset (POR) or from another processor in atightly coupledmultiprocessor complex. This permitted IBM to easily repair microprogramming defects in the field. Even when the majority of the control store is stored in ROM, computer vendors would often sell writable control store as an option, allowing the customers to customize the machine's microprogram. Other vendors, e.g., IBM, use the WCS to run microcode for emulator features[5][6] and hardware diagnostics.[7]

Other commercial machines that use writable microcode include theBurroughs Small Systems (1970s and 1980s), the Xerox processors in theirLisp machines andXerox Star workstations, theDECVAX 8800 ("Nautilus") family, and theSymbolics L- and G-machines (1980s). Some DECPDP-10 machines store their microcode in SRAM chips (about 80 bits wide x 2 Kwords), which is typically loaded on power-on through some other front-end CPU.[8] Many more machines offer user-programmable writable control stores as an option (including theHP 2100, DECPDP-11/60 andVarian Data Machines V-70 seriesminicomputers).TheMentec M11 andMentec M1 store its microcode in SRAM chips, loaded on power-on through another CPU.TheData General Eclipse MV/8000 ("Eagle") has a SRAM writable control store, loaded on power-on through another CPU.[9]

WCS offers several advantages including the ease of patching the microprogram and, for certain hardware generations, faster access than ROMs could provide. User-programmable WCS allow the user to optimize the machine for specific purposes. However, it also had the disadvantage of making it harder to debug programs, and making it possible for malicious users to negatively affect the system and data.[10]

TheBurroughs Small Systems, theRekursiv processor, and theImsysCjip[11] supported loading different microcode for programs in different programming languages, with the microcode for a particular language implementing an instruction set tailored for the language.

Several Intel CPUs in thex86 architecture family have writable microcode,[12] starting with thePentium Pro in 1995.[13][14]This has allowed bugs in theIntel Core 2 microcode and IntelXeon microcode to be fixed in software, rather than requiring the entire chip to be replaced.Such fixes can be installed by Linux,[15]FreeBSD,[16] Microsoft Windows,[17] or the motherboard BIOS.[18]

Timing, latching and avoiding a race condition

[edit]

The control store usually has a register on its outputs. The outputs that go back into the sequencer to determine the next address have to go through some sort of register to prevent the creation of arace condition.[19]In most designs all of the other bits also go through a register. This is because the machine will work faster if the execution of the next microinstruction is delayed by one cycle. This register is known as a pipeline register. Very often the execution of the next microinstruction is dependent on the result of the current microinstruction, which will not be stable until the end of the current microcycle. It can be seen that either way, all of the outputs of the control store go into one big register. Historically it used to be possible to buy EPROMs with these register bits on the same chip.

Theclock signal determining theclock rate, which is the cycle time of the system, primarily clocks this register.

References

[edit]
  1. ^Koopman Jr., Philip (1987)."Writable instruction set, stack oriented computers: The WISC Concept"(PDF).The Journal of Forth Application and Research.5 (1):49–71.
  2. ^Koopman Jr., Philip (1989)."Architecture of the WISC CPU/16".Stack Computers: the new wave.
  3. ^Koopman Jr., Philip (1989)."Architecture of the RTX 32P".Stack Computers: the new wave.
  4. ^IBM (September 1974),IBM System/370 Principles of Operation(PDF), Fourth Edition, pp. 98, 245, GA22-7000-4
  5. ^IBM (June 1968),IBM System/360 Model 85 Functional Characteristics(PDF), SECOND EDITION, A22-6916-1
  6. ^IBM (March 1969),IBM System/360 Special Feature Description 709/7090/7094 Compatibility Feature for IBM System/360 Model 85, First Edition, GA27-2733-0
  7. ^IBM (January 1971),IBM System/370 Model 155 Functional Characteristics(PDF), SECOND EDITION, GA22-6942-1
  8. ^Smith, Eric (September 3, 2002)."Re: What was the size of Microcode in various machines".Newsgroupcomp.arch.
  9. ^Mark Smotherman."CPSC 330 / The Soul of a New Machine".4096 x 75-bit SRAM writeable control store: 74-bit microinstruction with 1 parity bit (18 fields)
  10. ^McDowell, Charlie (1982)."Protection at the micromachine level".ACM SIGARCH Computer Architecture News.10 (1): 5.doi:10.1145/859520.859521. Retrieved2023-11-25.It is not unusual to find microprograms that are greater than 50K bytes in size. This increase in size, and the expansion of microprograming beyond the traditional bounds of machine instruction emulation, have increased the possibility of both malicious and faulty microprograms, particularly the later.
  11. ^"Great Microprocessors of the Past and Present (V 13.4.0)". Cpushack.com. Retrieved2010-04-26.
  12. ^Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1(PDF). December 2009. chapter 9.11: "Microcode update facilities".
  13. ^Stiller, Andreas; Paul, Matthias R. (1996-05-12)."Prozessorgeflüster".c't – magazin für computertechnik. Trends & News / aktuell - Prozessoren (in German). Vol. 1996, no. 6.Verlag Heinz Heise GmbH & Co KG. p. 20.ISSN 0724-8679.Archived from the original on 2017-08-28. Retrieved2017-08-28.
  14. ^Gwennap, Linley (1997-09-15)."P6 Microcode Can Be Patched - Intel Discloses Details of Download Mechanism for Fixing CPU Bugs"(PDF).Microprocessor Report.MicroDesign Resources.Archived(PDF) from the original on 2022-05-19. Retrieved2017-06-26. (2 pages)
  15. ^"Intel Microcode Update Utility for Linux". Archived fromthe original on 2012-02-26.
  16. ^Stefan Blachmann (2018-03-02)."New microcode updating tool for FreeBSD".freebsd-hackers (Mailing list). Retrieved2019-07-09.
  17. ^"A microcode reliability update is available that improves the reliability of systems that use Intel processors".Microsoft Support. June 22, 2007. Archived fromthe original on 2007-06-28.
  18. ^"BIOS Update required when Missing Microcode message is seen during POST".Intel. Retrieved2022-01-13.
  19. ^Don Lancaster."TV Typewriter Cookbook".p. 62.(TV Typewriter)

Further reading

[edit]
The WikibookMicroprocessor Design has a page on the topic of:Microcode
Models
Architecture
Instruction set
architectures
Types
Instruction
sets
Execution
Instruction pipelining
Hazards
Out-of-order
Speculative
Parallelism
Level
Multithreading
Flynn's taxonomy
Processor
performance
Types
By application
Systems
on chip
Hardware
accelerators
Word size
Core count
Components
Functional
units
Logic
Registers
Control unit
Datapath
Circuitry
Power
management
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Control_store&oldid=1330870168"
Categories:
Hidden category:

[8]ページ先頭

©2009-2026 Movatter.jp