관리 스토어
Control store컨트롤 스토어는 CPU의 마이크로 프로그램을 저장하는 CPU의 컨트롤 유닛의 일부입니다.일반적으로 마이크로시퀀서를 통해 액세스됩니다.내용을 변경할 수 없는 컨트롤 스토어의 실장은 읽기 전용 메모리(ROM) 또는 읽기 전용 스토리지(ROS)라고 불리며, 내용을 변경할 수 있는 것은 쓰기 가능한 컨트롤 스토어(WCS)라고 불립니다.
실행
조기 사용
초기 제어 저장소는 읽기 전용 메모리의 일종인 주소 디코더를 통해 액세스되는 다이오드 배열로 구현되었습니다.이 전통은 1947년에 처음 기술된 MIT Whirlwind의 프로그램 타이밍 매트릭스로 거슬러 올라갑니다.대신 최신 VLSI 프로세서는 전계효과 트랜지스터의 매트릭스를 사용하여 마이크로코드 구현으로 프로세서와 내부 시퀀서를 제어하는 데 사용되는 ROM 및/또는 PLA 구조를 구축합니다.IBM System/360은 모델 30의 CCROS(카드 캐패시터 읽기 전용 스토리지), 모델 40의 TOS(트랜스포머 읽기 전용 스토리지), 모델 50, 65 및 67의 BCROS(밸런스 캐패시터 읽기 전용 스토리지) 등 다양한 기술을 사용했습니다.
쓰기 가능한 저장소
일부 컴퓨터는 "쓰기 가능한 마이크로 코드"를 사용하여 구축되었습니다.- 마이크로 코드를 ROM이나 유선 로직으로 저장하는 것이 아니라 쓰기 가능한 컨트롤 스토어(WCS)라고 불리는 RAM에 저장했습니다.이러한 시스템을 쓰기 가능한 명령 집합 시스템 또는 [1]WISC라고 부르기도 합니다.이러한 기계의 대부분은 WISC CPU/16[2] 및 RTX 32P와 [3]같은 실험용 시제품이었습니다.
원래 System/360 모델에는 읽기 전용 컨트롤 스토어가 있었지만, 이후 System/360, System/370 및 후속 모델에서는 플로피 디스크 또는 기타 DASD에서 마이크로 프로그램의 일부 또는 전부를 초고속 랜덤 액세스 읽기/쓰기 메모리로 구성된 쓰기 가능한 컨트롤 스토어에 로드했습니다.System/370 아키텍처에는 콘솔, POR(Power On Reset)의 일부 또는 긴밀하게 결합된 멀티프로세서 복합체의 다른 프로세서에서 호출할 수 있는 초기 마이크로프로그래밍 로드(IML 또는 IML)[4]라는 기능이 포함되어 있습니다.이를 통해 IBM은 현장에서 마이크로프로그래밍 결함을 쉽게 복구할 수 있었습니다.대부분의 컨트롤 스토어가 ROM에 저장되어 있는 경우에도 컴퓨터 벤더는 옵션으로서 기입 가능한 컨트롤 스토어를 판매하여 고객이 머신의 마이크로 프로그램을 커스터마이즈할 수 있도록 합니다.IBM과 같은 다른 벤더는 WCS를 사용하여 에뮬레이터[5][6] 기능 및 하드웨어 [7]진단을 위한 마이크로 코드를 실행합니다.
쓰기 가능한 마이크로 코드를 사용한 다른 상용 머신으로는 Burroughs Small Systems(1970년대와 1980년대), 리스프 머신과 Xerox Star 워크스테이션의 Xerox 프로세서, DEC VAX 8800("Nautilus") 패밀리, 심볼릭스 L-머신 및 G-머신(1980년대) 등이 있습니다.일부 DEC PDP-10 머신은 마이크로 코드를 SRAM 칩(약 80비트 폭 x 2Kwords)에 저장했습니다.일반적으로 전원을 켤 때 다른 프런트 [8]엔드 CPU를 통해 로드됩니다.더 많은 머신이 옵션으로 사용자 프로그래밍 가능한 쓰기 가능한 컨트롤 스토어를 제공하고 있습니다(HP 2100, DEC PDP-11/60 및 Varian Data-70 시리즈 포함).Mentec M11 및 Mentec M1은 마이크로코드를 SRAM 칩에 저장하여 다른 CPU를 통해 전원을 켤 때 로드했습니다.Data General Eclipse MV/8000("Eagle")에는 다른 CPU를 [9]통해 전원을 켤 때 로드되는 SRAM 쓰기 가능 제어 저장소가 있었습니다.
WCS는 마이크로 프로그램을 쉽게 패치할 수 있고 특정 하드웨어 세대에게 ROM보다 빠른 액세스를 제공하는 등 몇 가지 이점을 제공했습니다.사용자가 프로그래밍할 수 있는 WCS를 통해 사용자는 특정 목적에 맞게 기계를 최적화할 수 있습니다.
일부 CPU 설계에서는 명령 세트를 CPU 내부의 쓰기 가능한 RAM 또는 플래시(Rekursiv 프로세서 및 Imsys Cjip [10]등) 또는 FPGA(재구성 가능한 컴퓨팅)로 컴파일합니다.
x86 아키텍처 패밀리의 일부 인텔 CPU는 1995년 [12][13]Pentium Pro를 시작으로 쓰기 가능한 마이크로 [11]코드를 갖추고 있습니다.이것에 의해, 인텔 Core 2 마이크로 코드나 인텔 Xeon 마이크로 코드의 버그를, 칩 전체를 교환할 필요는 없고, 소프트웨어로 수정할 수 있게 되었습니다.이러한 수정은 Linux,[14] FreeBSD,[15] Microsoft Windows [16]또는 메인보드 [17]BIOS에서 설치할 수 있습니다.
타이밍, 래치, 레이스 조건 회피
제어 저장소에는 일반적으로 출력에 레지스터가 있습니다.다음 주소를 결정하기 위해 시퀀서로 돌아가는 출력은 레이스 [18]조건이 생성되지 않도록 일종의 레지스터를 통과해야 합니다.대부분의 설계에서는 다른 모든 비트도 레지스터를 통과합니다.이는 다음 마이크로 명령의 실행이 한 주기 지연되면 기계가 더 빨리 작동하기 때문입니다.이 레지스터를 파이프라인 레지스터라고 합니다.대부분의 경우 다음 마이크로 명령의 실행은 현재의 마이크로 명령의 결과에 의존하며, 현재의 마이크로 사이클이 끝날 때까지 안정적이지 않습니다.어느 쪽이든 컨트롤 스토어의 모든 출력이 하나의 큰 레지스터에 들어가는 것을 알 수 있습니다.이전에는 이러한 레지스터 비트를 같은 칩에 탑재한EPROM을 구입할 수 있었습니다.
클럭 레이트를 결정하는 클럭 신호(시스템 사이클 시간)는 주로 이 레지스터를 클럭합니다.
레퍼런스
- ^ 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.
- ^ Koopman Jr., Philip (1989). "Architecture of the WISC CPU/16". Stack Computers: the new wave.
- ^ Koopman Jr., Philip (1989). "Architecture of the RTX 32P". Stack Computers: the new wave.
- ^ IBM (September 1974), IBM System/370 Principles of Operation (PDF), Fourth Edition, pp. 98, 245, GA22-7000-4
- ^ IBM (June 1968), IBM System/360 Model 85 Functional Characteristics (PDF), SECOND EDITION, A22-6916-1
- ^ 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
- ^ IBM (January 1971), IBM System/370 Model 155 Functional Characteristics (PDF), SECOND EDITION, GA22-6942-1
- ^ Smith, Eric (September 3, 2002). "Re: What was the size of Microcode in various machines". Newsgroup: comp.arch.
- ^ 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)
- ^ "Great Microprocessors of the Past and Present (V 13.4.0)". Cpushack.com. Retrieved 2010-04-26.
- ^ 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".
- ^ 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. Retrieved 2017-08-28.
- ^ 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. Retrieved 2017-06-26. (2페이지)
- ^ "Intel Microcode Update Utility for Linux". Archived from the original on 2012-02-26.
- ^ Stefan Blachmann (2018-03-02). "New microcode updating tool for FreeBSD". freebsd-hackers (Mailing list). Retrieved 2019-07-09.
- ^ "A microcode reliability update is available that improves the reliability of systems that use Intel processors". Microsoft Support. June 22, 2007. Archived from the original on 2007-06-28.
- ^ "BIOS Update required when Missing Microcode message is seen during POST". Intel. Retrieved 2022-01-13.
- ^ 돈 랭커스터."TV 타자기 요리책", 페이지 62. (TV 타자기)
추가 정보
- Everett, Robert Rivers; Swain, F. E. (1947-09-04). Whirlwind I Computer Block Diagrams (PDF). Project Whirlwind (Device 24-X-3). Vol. 1. Cambridge, Massachusetts, USA: Servomechanisms Laboratory Massachusetts Institute of Technology. Project DIC 6345, Report R-127. Archived (PDF) from the original on 2021-08-15. Retrieved 2021-11-12. (104 페이지)
- Everett, Robert Rivers; Swain, F. E. (1947-09-04). Whirlwind I Computer Block Diagrams (PDF). Project Whirlwind (Device 24-X-3). Vol. 2. Cambridge, Massachusetts, USA: Servomechanisms Laboratory Massachusetts Institute of Technology. Project DIC 6345, Report R-127. Archived (PDF) from the original on 2021-08-15. Retrieved 2021-11-12. (79 페이지)
- Smith, Richard E. (October–December 1988). "A Historical Overview of Computer Architecture". Annals of the History of Computing. IEEE. 10 (4): 277–303. doi:10.1109/MAHC.1988.10039. S2CID 16405547. Retrieved 2006-06-21.