유산의 이전과 같은 디자인 Babbage 의 차이 엔진 및 메인프레임 펀치카드의 시스템은 1970 년대에 큰 영향을 미치는 오늘날의 컴퓨터 시스템입니다. 에 내 첫 번째 문서에서는 이 역사적인 시리즈로,컴퓨터 역사와 현대를 위해 컴퓨터 시스템 관리자,나는 논의된 여러 가지 전구체를 현대 컴퓨터 및 나열됩적 특성을 정의하는 우리가 부르는 컴퓨터를 오늘입니다.,
이 기사에서는 구성 요소와 기능을 포함한 중앙 처리 장치(CPU)에 대해 설명합니다. 주제의 대부분은 첫 번째 기사를 다시 참조,그래서 당신은 이미하지 않은 경우 그것을 읽어해야합니다.
중앙 처리 장치(CPU)
현대 컴퓨터의 CPU 는 Babbage 의 차이 엔진에서”밀”의 구체화입니다. 용어 중앙처리장치 유래 방법으로 다시 안개에서의 컴퓨터 시간을 할 때 하나의 거대한 캐비닛에 포함되는 회로에 필요한 해석기 기계 수준의 프로그램 지침에 대한 작업을 수행한 데이터 제공됩니다., 중앙 처리 장치는 또한 부착 된 주변 장치에 대한 모든 처리를 완료했습니다. 주변 장치에는 프린터,카드 판독기 및 드럼 및 디스크 드라이브와 같은 초기 저장 장치가 포함되었습니다. 최신 주변 장치에는 상당한 양의 처리 능력이 있으며 CPU 에서 일부 처리 작업을 오프로드합니다. 이것은 그것의 힘이 손에 기본 작업에 적용되도록 입출력 작업에서 CPU 를 해제합니다.
초기 컴퓨터에는 하나의 CPU 만 있었고 한 번에 하나의 작업 만 수행 할 수있었습니다.,
우리는 오늘날 CPU 라는 용어를 유지하지만 지금은 일반적인 마더 보드의 프로세서 패키지를 나타냅니다. 그림 1 은 표준 인텔 프로세서 패키지를 표시합니다.
그림 1:Intel Core i5 프로세서 패키지(Jud McCranie via Wikimedia Commons,CC BY-SA4.0).
프로세서 패키지 자체 이외에는 실제로 여기에서 볼 수있는 것이 없습니다. 프로세서 패키지는 칩을 포함하는 프로세서(s)밀봉된 내 금속 및 컨테이너에 장착된 작은 인쇄 회로 기판(PC)다., 패키지는 단순히 마더 보드의 CPU 소켓에 제자리에 떨어지고 잠금 레버 배열로 고정됩니다. CPU 쿨러가 프로세서 패키지에 부착됩니다. 거기에 여러 가지 신체는 소켓의 특정 숫자의 연락처,그래서 올바른 패키지에 맞는 마더보드 소켓이 필수적인 경우에 당신을 구축 자신의 컴퓨터입니다.
CPU 작동 방식
CPU 를 더 자세히 살펴 보겠습니다. 그림 2 는 구성 요소를보다 쉽게 시각화 할 수 있도록 가상의 CPU 의 개념 다이어그램입니다., RAM 및 시스템 클럭은 CPU 의 일부가 아니며 명확성을 위해서만 표시되므로 음영 처리됩니다. 또한 CPU 클럭과 CPU 구성 요소에 대한 제어 장치 간의 연결은 그려지지 않습니다. 시계와 제어 장치의 신호가 다른 모든 구성 요소의 필수적인 부분이라고 말하면 충분합니다.
림 2:단순한 개념도의 전형적인 CPU.
이 디자인은 특히 단순 해 보이지는 않지만 현실은 더욱 복잡합니다., 이 수치는 지나치게 복잡하지 않고 우리의 목적에 충분합니다.
산술 논리 유닛
산술 논리 유닛(ALU)을 수행한 산술 및 논리 함수는 컴퓨터의 작업. A 및 B 레지스터는 입력 데이터를 보유하며 누산기는 작업 결과를 수신합니다. 명령 레지스터에는 ALU 가 수행 할 명령이 포함되어 있습니다.
예를 들어,두 개의 숫자를 더할 때 하나의 숫자는 a 레지스터에 배치되고 다른 숫자는 B 레지스터에 배치됩니다. ALU 는 추가를 수행하고 그 결과를 누산기에 넣습니다., 작업이 논리적 인 경우 비교할 데이터가 입력 레지스터에 배치됩니다. 비교 결과 인 1 또는 0 이 누산기에 넣어집니다. 이것이 논리 연산이든 산술 연산이든간에 누적 콘텐츠는 결과에 대해 프로그램에서 예약 한 캐시 위치에 배치됩니다.
ALU 가 수행하는 또 다른 유형의 작업이 있습니다. 결과는 메모리의 주소이며 명령어 로딩을 시작하기 위해 메모리의 새 위치를 계산하는 데 사용됩니다. 결과는 명령 포인터 레지스터에 배치됩니다.,
명령 레지스터 및 포인터
명령 포인터는 CPU 에 의해 실행될 다음 명령어를 포함하는 메모리의 위치를 지정합니다. CPU 가 현재 명령어의 실행을 완료하면 다음 명령어는 명령어 포인터가 가리키는 메모리 위치에서 명령어 레지스터에로드됩니다.
명령어가 명령어 레지스터에 로드된 후,명령어 레지스터 포인터는 하나의 명령어 주소만큼 증분된다. 증가 시키면 다음 명령어를 명령어 레지스터로 이동할 준비가됩니다.,cpu 는 RAM 에 직접 액세스하지 않습니다. 최신 Cpu 에는 하나 이상의 캐시 계층이 있습니다. 계산을 수행하는 CPU 의 능력은 RAM 이 CPU 에 데이터를 공급하는 능력보다 훨씬 빠릅니다. 이것에 대한 이유는이 기사의 범위를 벗어나지 만 다음 기사에서 더 자세히 살펴볼 것입니다.
캐시 메모리는 시스템 RAM 보다 빠르며 프로세서 칩에 있기 때문에 CPU 에 더 가깝습니다. 캐시는 CPU 가 ram 에서 데이터를 검색 할 때까지 기다리는 것을 방지하기위한 데이터 저장 및 지침을 제공합니다., 할 때 CPU 에 필요한 데이터 및 프로그램을 지시는 것으로 간주된 데이터 캐시는지 여부를 결정하는 데이터가 이미에 레지던스에게 제공합니다.
요청 된 데이터가 캐시에 없으면 RAM 에서 검색되고 예측 알고리즘을 사용하여 RAM 에서 캐시로 더 많은 데이터를 이동합니다. 캐시 컨트롤러는 요청 된 데이터를 분석하고 RAM 에서 필요한 추가 데이터를 예측하려고합니다. 예상 데이터를 캐시에로드합니다., RAM 보다 빠른 캐시에 일부 데이터를 CPU 에 더 가깝게 유지하면 CPU 가 바쁘게 유지되어 데이터를 기다리는 사이클을 낭비하지 않을 수 있습니다.
우리의 간단한 CPU 에는 세 가지 수준의 캐시입니다. 레벨 2 및 3 를 예측하도록 설계된 데이터 및 프로그램에 지침이 될 것입니다 필요한 다음,이동하는 데이터를 RAM 에서,이동 가까이에게 CPU 를 할 준비가 될 때 필요합니다. 이러한 캐시 크기는 일반적으로 프로세서의 속도 및 의도 된 용도에 따라 1mb 에서 32mb 까지 다양합니다.
레벨 1 캐시는 CPU 에 가장 가깝습니다. 우리의 CPU 에는 두 가지 유형의 L1 캐시가 있습니다., L1i 는 명령어 캐시이고 L1d 는 데이터 캐시입니다. 레벨 1 캐시 크기는 일반적으로 64kb 에서 512kb 까지입니다.
메모리 관리부
메모리 관리부(MMU)는 메인 메모리(RAM)와 CPU 사이의 데이터 흐름을 관리한다. 그것은 또한 메모리에 필요한 보호 멀티태스킹 환경 및 변환 사이에 가상 메모리 주소가 및 물리적 주소.
CPU 클럭 및 제어 장치
모든 CPU 구성 요소가 원활하게 함께 작동하도록 동기화되어야합니다., 제어 장치 이 기능을 수행합에 따라 결정된 속도계 속도과에 대한 책임을 연출 작업의 다른 단위를 사용하여 신호 타이밍에 걸쳐 연장 CPU.
Ram(Random access memory)
RAM 또는 메인 스토리지가 이 다이어그램과 다음에 나와 있지만,실제로는 CPU 의 일부가 아닙니다. 그 기능은 CPU 가 필요할 때 사용할 준비가되도록 프로그램과 데이터를 저장하는 것입니다.
작동 원리
Cpu 는 컨트롤 유닛에 의해 관리되고 CPU 클럭에 의해 동기화되는 사이클에서 작동합니다., 이 사이클을 CPU 명령어 사이클이라고하며 일련의 페치/디코드/실행 구성 요소로 구성됩니다. 정적 데이터 또는 가변 데이터에 대한 포인터를 포함 할 수있는 명령어는 페치되어 명령어 레지스터에 배치됩니다. 명령어는 디코딩되고 모든 데이터는 A 및 B 데이터 레지스터에 배치됩니다. 명령어는 a 및 B 레지스터를 사용하여 실행되며 결과는 누산기에 넣어집니다. 그런 다음 CPU 는 명령어 포인터의 값을 이전 값의 길이만큼 늘리고 다시 시작합니다.
기본 CPU 명령어주기는 다음과 같습니다.,
림 3:기본 CPU cycle.
속도의 필요성
기본 CPU 가 잘 작동하지만이 간단한 사이클에서 실행되는 Cpu 를 더욱 효율적으로 사용할 수 있습니다. CPU 성능을 높이기위한 여러 전략이 있으며 여기에서 두 가지를 살펴 봅니다.
명령어주기 과급
초기 CPU 설계자가 겪었던 한 가지 문제는 다양한 CPU 구성 요소에서 시간을 낭비하는 것이 었습니다., 첫 번째 중 하나를 위한 전략을 개선하 CPU 성능이 겹치는 부분의 CPU 명령 사이클을 활용하는 다양한 부분의 CPU 습니다.
예를 들어,현재 명령어가 디코딩되었을 때 다음 명령어가 페치되어 명령어 레지스터에 배치됩니다. 그런 일이 발생하자마자 명령어 포인터가 다음 명령어의 메모리 주소로 업데이트됩니다. 겹치는 명령어 사이클의 사용은 그림 4 에 나와 있습니다.,
그림 4:오버랩이있는 CPU 명령어주기.
이 디자인은 멋지고 매끄러 워 보이지만 I/O 를 기다리는 것과 같은 요소는 흐름을 방해 할 수 있습니다. 캐시에 적절한 데이터 나 지침이 없으면 MMU 가 올바른 것을 찾아 CPU 로 이동해야하며 시간이 좀 걸릴 수 있습니다. 특정 명령어는 다른 명령어보다 완료하는 데 더 많은 CPU 사이클이 걸리므로 부드러운 겹침을 방해합니다.
그럼에도 불구하고 이것은 CPU 성능을 향상시키기위한 강력한 전략입니다.,
하이퍼 스레딩
CPU 성능을 향상시키는 또 다른 전략은 하이퍼 스레딩입니다. 하이퍼 스레딩은 두 개의 데이터 및 명령 스트림을 제공하여 단일 프로세서 코어가 두 개의 Cpu 와 같이 작동합니다. 추가 두 번째시 포인터와 교육 등록하는 우리의 가상의 CPU,그림 5 에서와 같이,원하는 기능을 두 개의 Cpu 가 있는 실행하는 두 개의 별도의 지시 스트림의 중에 각 명령 사이클이다. 또한,때 하나는 실행이 스트림 포장 마차를 기다리는 동안 데이터를 다시,지침은 또한 데이터 두 번째 실행을 스트림 처리가 계속됩니다., 하이퍼 스레딩을 구현하는 각 코어는 명령어를 처리 할 수있는 능력에서 두 개의 Cpu 에 해당합니다.
숫자 5:개념도의 CPU 하이퍼 스레딩.
이것은 우리의 가상의 CPU 에 대한 매우 단순화 된 다이어그램과 설명이라는 것을 기억하십시오. 현실은 훨씬 더 복잡합니다.
더 많은 용어
다른 CPU 용어가 많이 발생했습니다., 용어를 좀 더 명시 적으로 정의하려면lscpu
명령을 사용하여 CPU 자체를 살펴 보겠습니다.위의 인텔 프로세서는 마더 보드의 단일 소켓에 연결하는 패키지입니다. 프로세서 패키지에는 6 개의 코어가 포함되어 있습니다. 각 코어는 하이퍼 스레딩이 가능하므로 각각 총 12 개의 Cpu 에 대해 두 개의 동시 스레드를 실행할 수 있습니다.
내 정의:
- Core-a core 는 처리 작업을 수행 할 수있는 가장 작은 물리적 하드웨어 단위입니다. 그것은 하나의 ALU 와 하나 또는 두 세트의 지원 레지스터를 포함합니다., 레지스터 및 지원 회로의 두 번째 세트는 하이퍼 스레딩을 가능하게합니다. 하나 이상의 코어를 단일 물리적 패키지로 결합할 수 있습니다.
- CPU-단일 실행 스레드를 처리 할 수있는 논리적 하드웨어 단위입니다. 중앙 처리 장치라는 용어의 현대적인 사용은 프로세서 패키지가 동시에 실행할 수있는 총 스레드 수를 나타냅니다. 하이퍼 스레딩을 지원하지 않는 단일 코어 프로세서는 단일 CPU 에 해당합니다. 이 경우 CPU 와 코어는 동의어입니다., 단일 코어를 가진 하이퍼 스레딩 프로세서는 두 개의 Cpu 의 기능적 동등 물입니다. 8 개의 코어를 가진 하이퍼 스레딩 프로세서는 16 개의 Cpu 의 기능 상응입니다.
- 패키지-위의 그림 1 에 표시된 것과 같은 하나 이상의 코어를 포함하는 물리적 구성 요소입니다.
- 프로세서-1)프로그램 명령어를 처리하여 데이터를 조작하는 장치. 2)패키지의 동의어로 자주 사용됩니다.,
- Socket-때때로 사용되는 다른 대한 동의어 패키지지만,그것은 더 정확히 말하는 물리적 마더보드의 소켓으로 프로세서 패키지를 삽입한 것입니다.
소켓,프로세서 및 패키지라는 용어는 종종 같은 의미로 사용되어 혼란을 야기 할 수 있습니다. 으로 우리에서 볼lscpu
명령의 결과를 위,인텔 제공하는 우리 자신의 용어라고 생각하는 신뢰할 수 있는 소스입니다., 현실에서,우리는 모든 사람들을 사용 조건에서 다양한 방법으로,하지만 우리가 이해할 수 있다면 각각 다른 어떤 주어진 시점에서,그는 것은 정말 중요한 것입니다.
알 수 있는 프로세서 위에 있는 두 레벨 1 캐시 512KiB 각각 하나씩 지침(L1i)과 데이터를(L1d). 레벨 1 캐시는 CPU 에 가장 가깝고,이 시점에서 명령어와 데이터가 분리되도록 속도가 빨라집니다. 레벨 2 와 레벨 3 캐시는 더 크지 만 명령어와 데이터는 각각 공존합니다.
이 모든 것이 무엇을 의미합니까?
좋은 질문입니다., 메인 프레임 초기에 각 컴퓨터에는 단일 CPU 만 있었으며 둘 이상의 프로그램을 동시에 실행할 수 없었습니다. 메인 프레임을 실행할 수 있습 급여,그 재고 회계,고객은 청구,그리고,하지만 하나는 응용 프로그램을 실행할 수 있습니다. 각 프로그램은 시스템 운영자가 다음을 시작하기 전에 완료해야했습니다.
일부 이른 시에서 여러 프로그램을 실행하는 한 번에 걸렸다는 단순한 접근 방식이었을 목표로서의 더 나은 이용 단일 CPU., 예를 들어 program1 및 program2 가로드되고 program1 이 I/O 가 발생할 때까지 차단 될 때까지 실행되었습니다. 그 시점에서 program2 는 차단 될 때까지 실행되었습니다. 이 접근법은 다중 처리라고 불리우며 귀중한 컴퓨터 시간을 완전히 활용하는 데 도움이되었습니다.
려는 멀티태스킹은 모든 관련 전환은행의 컨텍스트본적으로 한 프로그램을 매우 빠르게 간행의 스트림을 다중 작업이 있습니다. 이 연습은 실제로 한 번에 하나의 실행 스레드 만 처리되기 때문에 우리가 이해하는 것처럼 진정한 멀티 태스킹이 아닙니다. 더 정확하게 시간 공유라고합니다.,
스마트 시계 및 태블릿에서 슈퍼 컴퓨터에 이르기까지 최신 컴퓨터는 모두 여러 Cpu 로 진정한 멀티 태스킹을 지원합니다. 여러 Cpu 를 사용하면 컴퓨터가 동시에 많은 작업을 실행할 수 있습니다. 각 CPU 는 다른 모든 Cpu 와 동시에 자체 기능을 수행합니다. 하이퍼 스레딩(예:16Cpu)이있는 8 코어 프로세서는 16 개의 작업을 동시에 실행할 수 있습니다.
최종 생각
우리는 개념화하고 단순화된 CPU 스트에 대해 구조입니다. 나는이 기사에서 프로세서 기능의 표면을 간신히 훑어 보았다., 우리가 탐구 한 주제에 대한 포함 된 링크를 가져 가면 더 많은 것을 배울 수 있습니다.
이 기사의 다이어그램과 설명은 순전히 개념적이며 실제 CPU 를 나타내지 않는다는 것을 기억하십시오.
의 다음 부분에서 이 시리즈,살펴보겠습니다 램 및 디스크 드라이브로 다른 종류의 저장과 이유가 필요하다 현대적인 컴퓨터입니다.피>