컨트롤 스토어
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
컨트롤 스토어는 컴퓨터의 제어 신호를 저장하는 데 사용되는 저장 장치이다. 초기에는 다이오드 어레이, 이후에는 ROM, PLA 구조를 사용했으며, 쓰기 가능한 제어 저장소(WCS)는 마이크로코드를 RAM에 저장하여 내용 변경을 가능하게 했다. WCS는 마이크로코드 수정 및 업데이트를 용이하게 했으며, 다양한 상용 기기에 적용되었다. 현대 CPU 설계는 명령어 집합을 RAM, 플래시 메모리 또는 FPGA에 컴파일하며, x86 아키텍처의 Intel CPU는 쓰기 가능한 마이크로코드를 통해 버그를 소프트웨어로 수정한다. 컨트롤 스토어는 일반적으로 출력에 레지스터를 가지며, 파이프라인 레지스터를 통해 경쟁 상태를 방지하고 시스템의 사이클 시간을 결정한다.
마이크로코드는 CPU 내부에 구현되는 방식으로, 초기에는 ROM 형태로 구현되었으나, 현대에는 쓰기 가능한 제어 저장소(WCS)를 활용하여 유연성을 높이는 추세이다.
현대의 많은 CPU는 쓰기 가능한 마이크로코드를 사용한다. 이는 마이크로코드를 RAM에 저장하여 소프트웨어 업데이트를 통해 기능을 개선하거나 오류를 수정할 수 있게 해준다.[1]
[1]
논문
Writable instruction set, stack oriented computers: The WISC Concept
http://www.ece.cmu.e[...]
1987
2. 구현
초기 제어 저장소는 ROM의 일종인 다이오드 어레이로 구현되었다.[1] 이는 1947년에 처음 기술된 MIT Whirlwind의 '프로그램 타이밍 매트릭스'가 대표적이다.[1] 현대의 VLSI 프로세서는 전계 효과 트랜지스터 매트릭스를 사용하여 ROM 및/또는 PLA 구조를 마이크로코드로 구현한다.[1] IBM System/360은 모델별로 다른 기술을 사용했는데, Model 30은 CCROS, Model 40은 TROS, 50, 65 및 67 모델은 BCROS를 사용했다.[1]
일부 컴퓨터는 마이크로코드를 RAM에 저장하는 ''쓰기 가능한 제어 저장소''(WCS)를 사용한다.[1] 초기 IBM System/360 모델은 읽기 전용 제어 저장소를 가졌지만, 이후 System/360, IBM System/370 및 후속 모델은 플로피 디스크나 기타 DASD에서 마이크로프로그램의 일부 또는 전부를 WCS로 로드했다. IBM은 '''초기 마이크로프로그램 로드''' ('''IML''' 또는 '''IMPL''')[4] 기능을 통해 현장에서 마이크로프로그래밍 결함을 쉽게 수정할 수 있었다.
WCS를 사용한 상업용 기계로는 Burroughs Small Systems, Xerox Lisp machine 및 Xerox Star 워크스테이션의 Xerox 프로세서, DEC VAX 8800 ("Nautilus") 제품군, Symbolics L- 및 G-머신 등이 있다. HP 2100, DEC PDP-11/60 및 Varian Data Machines V-70 시리즈 미니컴퓨터 등은 사용자 프로그래밍 가능한 WCS를 옵션으로 제공했다. Mentec M11 및 Mentec M1과 Data General Eclipse MV/8000 ("Eagle")은 SRAM WCS를 가지고 있으며, 전원이 켜질 때 다른 CPU를 통해 로드된다.[9]
WCS는 마이크로프로그램 패치 용이성, 빠른 액세스 등의 장점을 제공하며, 사용자 프로그래밍 가능한 WCS는 사용자가 기계를 최적화할 수 있게 해준다. 그러나 프로그램을 디버깅하기 어렵게 만들고 악의적인 사용자가 시스템 및 데이터에 부정적인 영향을 미칠 수 있다는 단점도 있다.[10]
x86 아키텍처 제품군에 속하는 여러 Intel CPU는 1995년 Pentium Pro를 시작으로 쓰기 가능한 마이크로코드를 가지고 있다.[12][13] 이를 통해 Intel Core 2 마이크로코드 및 Intel Xeon 마이크로코드의 버그를 소프트웨어로 수정할 수 있었다. 이러한 수정 사항은 Linux,[14] FreeBSD,[15] Microsoft Windows,[16] 또는 마더보드 BIOS[17]를 통해 설치할 수 있다.
컨트롤 스토어는 일반적으로 출력에 레지스터를 가진다. 경쟁 상태 발생을 방지하기 위해 다음 주소를 결정하기 위해 시퀀서로 다시 들어가는 출력은 레지스터를 거쳐야 한다.[18] 대부분의 설계에서 다른 모든 비트도 레지스터를 거치는데, 이는 다음 마이크로 명령어의 실행을 한 주기 지연시키면 기계가 더 빠르게 작동하기 때문이다. 이 레지스터는 파이프라인 레지스터라고 한다.
2. 1. 초기 구현
초기 제어 저장소는 주소 디코더를 통해 접근되는 다이오드 어레이로 구현되었으며, 이는 ROM의 한 형태였다.[1] 이러한 방식은 1947년에 처음 기술된 MIT Whirlwind의 '프로그램 타이밍 매트릭스'까지 거슬러 올라간다.[1] 현대의 VLSI 프로세서는 전계 효과 트랜지스터 매트릭스를 사용하여 프로세서와 내부 시퀀서를 제어하는 데 사용되는 ROM 및/또는 PLA 구조를 마이크로코드 구현으로 구축한다.[1] IBM System/360은 다양한 기술을 사용했는데, Model 30은 CCROS(Card Capacitor Read-Only Storage), Model 40은 TROS(Transformer Read-Only Storage), 50, 65 및 67 모델은 BCROS(Balanced Capacitor Read-Only Storage)를 사용했다.[1]
2. 2. 쓰기 가능한 제어 저장소 (WCS)
컴퓨터 중 일부는 "쓰기 가능한 마이크로코드"를 사용하여 제작된다. 즉, 마이크로코드를 ROM이나 하드와이어드 로직(회로로 굳어진 형태)에 저장하는 대신 RAM에 저장하며, 이를 ''쓰기 가능한 제어 저장소''(WCS)라고 한다.[1]
초기 IBM System/360 모델은 읽기 전용 제어 저장소를 가졌지만, 이후 System/360, IBM System/370 및 후속 모델은 플로피 디스크 또는 기타 DASD에서 마이크로프로그램의 일부 또는 전부를 고속 랜덤 액세스 읽기-쓰기 메모리로 구성된 WCS로 로드했다. System/370 아키텍처는 콘솔에서 호출될 수 있는 '''초기 마이크로프로그램 로드''' ('''IML''' 또는 '''IMPL''')[4]라는 기능을 포함하며, '''전원 켜짐 재설정''' ('''POR''')의 일부 또는 긴밀하게 결합된 멀티프로세서 복합체의 다른 프로세서에서 호출될 수 있었다. 이를 통해 IBM은 현장에서 마이크로프로그래밍 결함을 쉽게 수정할 수 있었다.
WCS를 사용하는 상업용 기계로는 Burroughs Small Systems, Xerox Lisp machine 및 Xerox Star 워크스테이션의 Xerox 프로세서, DEC VAX 8800 ("Nautilus") 제품군, Symbolics L- 및 G-머신이 있다. 일부 DEC PDP-10 머신은 마이크로코드를 SRAM 칩에 저장하며, 이는 일반적으로 다른 프런트 엔드 CPU를 통해 전원이 켜질 때 로드된다.[8] HP 2100, DEC PDP-11/60 및 Varian Data Machines V-70 시리즈 미니컴퓨터를 포함한 더 많은 머신에서 사용자 프로그래밍 가능한 WCS를 옵션으로 제공했다.
Mentec M11 및 Mentec M1은 마이크로코드를 SRAM 칩에 저장하며, 전원이 켜질 때 다른 CPU를 통해 로드된다. Data General Eclipse MV/8000 ("Eagle")은 SRAM WCS를 가지고 있으며, 전원이 켜질 때 다른 CPU를 통해 로드된다.[9]
WCS는 마이크로프로그램 패치 용이성, 특정 하드웨어 세대에서 ROM보다 빠른 액세스 등 여러 가지 장점을 제공한다. 사용자 프로그래밍 가능한 WCS를 사용하면 사용자가 특정 목적에 맞게 기계를 최적화할 수 있다. 그러나 프로그램을 디버깅하기 어렵게 만들고 악의적인 사용자가 시스템 및 데이터에 부정적인 영향을 미칠 수 있다는 단점도 있다.[10]
x86 아키텍처 제품군에 속하는 여러 Intel CPU는 1995년 Pentium Pro를 시작으로 쓰기 가능한 마이크로코드를 가지고 있다.[12][13] 이를 통해 Intel Core 2 마이크로코드 및 Intel Xeon 마이크로코드의 버그를 전체 칩을 교체하지 않고 소프트웨어로 수정할 수 있었다. 이러한 수정 사항은 Linux,[14] FreeBSD,[15] Microsoft Windows,[16] 또는 마더보드 BIOS[17]를 통해 설치할 수 있다.
2. 3. 타이밍, 래칭 및 경쟁 상태 방지
컨트롤 스토어는 일반적으로 출력에 레지스터를 가진다. 다음 주소를 결정하기 위해 시퀀서로 다시 들어가는 출력은 경쟁 상태 발생을 방지하기 위해 일종의 레지스터를 거쳐야 한다.[18]
대부분의 설계에서 다른 모든 비트도 레지스터를 거친다. 이는 다음 마이크로 명령어의 실행을 한 주기 지연시키면 기계가 더 빠르게 작동하기 때문이다. 이 레지스터는 파이프라인 레지스터라고 한다. 매우 자주, 다음 마이크로 명령어의 실행은 현재 마이크로 명령어의 결과에 따라 달라지며, 이는 현재 마이크로 사이클이 끝날 때까지 안정되지 않는다. 어떤 경우든 컨트롤 스토어의 모든 출력이 하나의 큰 레지스터로 들어가는 것을 볼 수 있다. 역사적으로 이러한 레지스터 비트가 있는 EPROM을 동일한 칩으로 구매할 수 있었다.
시스템의 사이클 시간을 결정하는 클럭 신호가 주로 이 레지스터를 클럭한다.
3. 현대적 응용
인텔 x86 아키텍처 CPU는 1995년 펜티엄 Pro부터 쓰기 가능한 마이크로코드를 도입했다.[12][13] 이를 통해 Intel Core 2 및 Intel Xeon 마이크로코드와 같은 CPU의 버그를 소프트웨어 패치로 수정할 수 있게 되었다. 이러한 패치는 리눅스,[14] FreeBSD,[15] 마이크로소프트 윈도우,[16] 또는 마더보드 BIOS[17]를 통해 설치할 수 있다.
Rekursiv 프로세서,[11] Imsys Cjip[11]과 같이 명령어 집합을 CPU 내부의 쓰기 가능한 RAM 또는 플래시 메모리에 컴파일하는 CPU 설계도 있다. 재구성 가능한 컴퓨팅은 FPGA를 활용하여 마이크로코드를 구현하는 방식이다.
참조
[2]
서적
Stack Computers: the new wave
https://users.ece.cm[...]
1989
[3]
서적
Stack Computers: the new wave
https://users.ece.cm[...]
1989
[4]
간행물
IBM System/370 Principles of Operation
http://www.bitsavers[...]
1974-09
[5]
간행물
IBM System/360 Model 85 Functional Characteristics
http://www.bitsavers[...]
1968-06
[6]
간행물
IBM System/360 Special Feature Description 709/7090/7094 Compatibility Feature for IBM System/360 Model 85
1969-03
[7]
간행물
IBM System/370 Model 155 Functional Characteristics
http://www.bitsavers[...]
1971-01
[8]
뉴스
Re: What was the size of Microcode in various machines
http://pdp10.nocrew.[...]
2002-09-03
[9]
웹사이트
CPSC 330 / The Soul of a New Machine
http://www.cs.clemso[...]
[10]
논문
Protection at the micromachine level
https://dl.acm.org/d[...]
2023-11-25
[11]
웹사이트
Great Microprocessors of the Past and Present (V 13.4.0)
http://cpushack.com/[...]
Cpushack.com
2010-04-26
[12]
서적
Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1
http://www.intel.com[...]
2009-12
[13]
잡지
P6 Microcode Can Be Patched - Intel Discloses Details of Download Mechanism for Fixing CPU Bugs
https://www.ele.uva.[...]
MicroDesign Resources
2017-06-26
[14]
웹사이트
Intel Microcode Update Utility for Linux
http://urbanmyth.org[...]
[15]
메일링 리스트
New microcode updating tool for FreeBSD
https://lists.freebs[...]
2019-07-09
[16]
웹사이트
A microcode reliability update is available that improves the reliability of systems that use Intel processors
http://support.micro[...]
2007-06-22
[17]
웹사이트
BIOS Update required when Missing Microcode message is seen during POST
https://www.intel.co[...]
2022-01-13
[18]
서적
TV Typewriter Cookbook
https://www.tinaja.c[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com