HTG 설명:CPU 는 실제로 어떻게 작동합니까?
- 안토니 Heddings
@anthonyheddings
- 업데이트 월 28,2020 년 4:58pm EDT
대부분의 것 컴퓨터에서는 상대적으로 간단하게 이해하기:램,저장소,주변 장치,소프트웨어는 모든 작품을 만들기 위해 함께 컴퓨터 기능입니다. 그러나 시스템의 핵심 인 CPU 는 많은 기술 사람들에게도 마술처럼 보입니다. 여기,우리는 그것을 무너 뜨리기 위해 최선을 다할 것입니다.
이 기사에 대한 대부분의 연구는”그러나 어떻게 알 수 있습니까?”J.Clark Scott 으로. 그것은 환상적인 읽기입니다,이 문서의 의지보다 훨씬 더 깊이로 간다,아마존에서 몇 달러 잘 가치가있다.
시작하기 전에 한 가지 참고 사항:현대 Cpu 는 우리가 여기서 요약 한 것보다 더 복잡한 크기의 순서입니다. 한 사람이 10 억 개가 넘는 트랜지스터를 가진 칩의 모든 뉘앙스를 이해하는 것은 거의 불가능합니다. 그러나,기본 원칙을 어떻게 이 모든 것은 남아 있는 동일하고,기초 이해를 줄 것이다 당신의 더 나은 이해를 현대적인 시스템입니다.
작은 시작
컴퓨터에서 운영하는 바이너리입니다. 그들은 켜짐과 꺼짐의 두 가지 상태 만 이해합니다. 이진수로 계산을 수행하기 위해 트랜지스터라고 불리는 것을 사용합니다. 트랜지스터는 게이트를 가로 지르는 전류가있는 경우에만 소스 전류가이를 통해 드레인으로 흐르게합니다. 본질적으로 이것은 두 번째 입력 신호에 따라 와이어를 차단하는 이진 스위치를 형성합니다.
관련:바이너리 란 무엇이며 왜 컴퓨터가 그것을 사용합니까?
현대적인 컴퓨터에서 사용하는 수십억의 트랜지스터 계산을 수행하지만,가장 낮은 수준에,당신은 단지 소수가 필요하는 형태로 가장 기본적인 구성 요소로 알려져 있다.
로직 게이츠
스택 몇 가지 트랜지스터는 제대로,당신은 무엇으로 알려진 로직 게이트도 있습니다. 논리 게이트는 두 개의 이진 입력을 가져 와서 해당 입력에 대한 연산을 수행하고 출력을 반환합니다. 예를 들어 or 게이트는 입력 중 하나가 true 인 경우 true 를 반환합니다. AND gate 는 두 입력이 모두 참인지 확인하고 xor 는 입력 중 하나만 참인지 확인하고 n-변형(NOR,NAND 및 XNOR)은 기본 게이트의 반전 버전입니다.
수학과 문
단 두 개의 게이트를 할 수 있는 기본적인 이진다. 위의이 다이어그램은 논리 게이트를위한 무료 온라인 놀이터 인 Logicly 를 사용하여 만든 반 가산기를 보여줍니다. 여기서 XOR 게이트는 입력 중 하나만 켜지면 켜지지만 둘 다 켜지는 않습니다. 및 게이트는 두 입력이 모두 켜져 있으면 켜지지만 입력이 없으면 꺼집니다. 그렇다면 모두에서,XOR 유지하고,게이트에 올바른 답을 두:
이것은 우리에게 간단한 설정으로 세 가지 출력:zero,one,two. 그러나 하나의 비트 저장할 수 없습니다 무엇보다 높 1 며,이 기지 않으로 유용한 그것은 단지 해결하는 하나의 간단한 수학 문제를 가능합니다. 그러나 이것은 단지 반 가산기이며,그 중 두 개를 다른 입력으로 연결하면 전체 가산기를 얻습니다:
전체 가산은 세 가지 입력—두 번호를 추가하고,”캐.”캐리는 최종 숫자가 단일 비트로 저장 될 수있는 것을 초과 할 때 사용됩니다. 전체 가산기는 체인으로 연결되며 캐리는 한 가산기에서 다음 가산기로 전달됩니다. 캐리는 상반기 가산기의 XOR 게이트의 결과에 추가되며,so 가 켜져 있어야 할 때 두 경우를 모두 처리 할 수있는 추가 또는 게이트가 있습니다.
두 입력이 모두 켜지면 캐리가 켜지고 체인의 다음 전체 가산기로 보냅니다:이것은 덧셈이 얻는 것만 큼 복잡합니다. 더 많은 비트까지 이동하면 본질적으로 더 긴 체인에서 더 많은 전체 가산기를 의미합니다.
대부분의 다른 수학 작업을 수행할 수 있습니다 추가와 함께;곱셈은 단지 반복한 빼기를 할 수 있는 몇 가지 멋진 조금 반전,그리고 사단은 반복된다움입니다. 과하는 동안 모든 현대적인 컴퓨터 하드웨어 기반의 솔루션은 속도를 더 복잡하게 작업할 수 있는 기술적으로 이 모든 것으로 전체 가산기이다.
,버스 및 메모리
지금,우리의 컴퓨터에 아무것보다 더 나쁜 계산기입니다. 이것은 아무것도 기억할 수없고 출력으로 아무 것도하지 않기 때문입니다. 위의 그림은 그 모든 것을 할 수있는 메모리 셀입니다. 후드 아래에서 낸드 게이트를 많이 사용하며 실생활에서는 저장 기술에 따라 상당히 다를 수 있지만 그 기능은 동일합니다. 당신은 그것을 몇 가지 입력을주고,’쓰기’비트를 켜고,셀 안에 입력을 저장할 것입니다. 우리는 또한 그것에서 정보를 읽을 수있는 방법을 필요로 이것은 단지 메모리 셀이 아니다. 이것은 인에이블러의 컬렉션 및 게이트에 대한 각각의 비트 메모리에 모두 묶여 다른 입력,””읽기 비트입니다. 쓰기 및 읽기 비트는 종종”설정”및”사용”이라고합니다.
이 전체 패키지는 레지스터로 알려진 것에 싸여 있습니다. 이 레지스터는 모든 구성 요소에 연결된 전체 시스템을 돌아 다니는 와이어 묶음 인 버스에 연결됩니다. 최신 컴퓨터조차도 멀티 태스킹 성능을 향상시키기 위해 여러 개의 버스가있을 수 있지만 버스가 있습니다.
각각의 등록 여전히 읽고 쓰는 비트,그러나 이 설정에서,입력 및 출력 같은 것입니다. 이것은 실제로 좋은 것입니다. 예를 들면. R1 의 내용을 R2 로 복사하고 싶다면 r1 의 내용을 버스에 밀어 넣는 r1 에 대한 읽기 비트를 켰을 것입니다. 읽기 비트가 켜져있는 동안 r2 에 대한 쓰기 비트를 켜면 버스 내용을 R2 로 복사합니다.
레지스터뿐만 아니라 RAM 을 만드는 데 사용됩니다. RAM 은 종종에 누워 그리드,와이어가는 두 가지 방향으로.
디코더를 가진 입력을 켜고 해당 번호 와이어입니다. 예를 들어,”11″은 2 진수로 3 이며 가장 높은 2 비트 숫자이므로 디코더는 가장 높은 와이어를 켭니다. 각 교차로에 레지스터가 있습니다. 이들 모두는 중앙 버스와 중앙 쓰기 및 읽기 입력에 연결됩니다. 모두 읽고 쓰기 입니다만 설정한 경우에는 두 개의 전선을 통해 교차로 등록 또한,효과적으로 선택할 수 있는 등록을 쓰고 읽을 수 있습니다. 다시 말하지만,현대 RAM 은 훨씬 더 복잡하지만이 설정은 여전히 작동합니다.
클럭,스테퍼 및 디코더
레지스터는 어디에서나 사용되며 CPU 에 데이터를 이동하고 정보를 저장하는 기본 도구입니다. 그래서 그들에게 물건을 움직이라고 말하는 것은 무엇입니까?
시계가 첫 번째 구성요소에서의 코어 CPU 와이에 일정 간격으로 측정 hertz 또는 초당 사이클. 이것은 당신이 Cpu 와 함께 광고 볼 속도입니다;5GHz 의 칩은 초당 50 억 사이클을 수행 할 수 있습니다. 클럭 속도는 종종 CPU 가 얼마나 빠른지에 대한 아주 좋은 메트릭입니다.
시계는 세 가지 다른다:기계,설계 및 설정합니다. 기본 시계는 반주기 동안 켜지고 나머지 절반은 꺼집니다. 활성화 클럭은 레지스터를 켜는 데 사용되며 데이터가 활성화되어 있는지 확인하기 위해 더 오래 켜져 있어야합니다. 설정된 클럭은 항상 활성화 클럭과 동시에 켜져야하거나 그렇지 않으면 잘못된 데이터가 기록 될 수 있습니다.
시계는 최대 단계에 하나에서 셀 스테퍼에 연결되고,완료되면 다시 하나에 자신을 재설정합니다. 시계가 연결되어 있 및 문 각 등록하는 쓸 수 있습니다:
이러한 문은 또한 연결을 출력의 다른 구성 요소,명령어 디코더. 명령어 디코더는”R2 를 R1 로 설정”과 같은 명령을 받아 CPU 가 이해할 수있는 것으로 디코딩합니다. 그것은 그것의 자신의 내부에 등록이라는”교육,등록”는 현재 작업이 저장됩니다. 어떻게 그것이 온다 아래로 시스템에서 실행하지만,일단 그것은 디코딩,그것은에 올바른 설정 및 사용에 대한 비트에 올바른 등록하는 것입니다에 따라 시계입니다.
프로그램 명령어는 RAM(또는 최신 시스템의 L1 캐시,CPU 에 더 가깝습니다)에 저장됩니다. 프로그램 데이터는 레지스터에 저장되기 때문에 다른 모든 변수와 마찬가지로 즉석에서 조작하여 프로그램을 뛰어 넘을 수 있습니다. 이것은 프로그램이 루프 및 if 문을 사용하여 구조를 얻는 방법입니다. 점프 명령어는 명령어 디코더가 읽고 있는 메모리의 현재 위치를 다른 위치로 설정합니다.
얼마나 그것을 모두 함께
이,우리의 심한 지나친 어떻게 CPU 작품을 완료합니다. 메인 버스는 전체 시스템에 걸쳐 있으며 모든 레지스터에 연결됩니다. 전체 가산기는 다른 연산의 무리와 함께 산술 논리 단위 또는 ALU 로 포장됩니다. 이 ALU 는 버스에 대한 연결을 가질 것이고,또한 작동중인 두 번째 번호를 저장하기위한 자체 레지스터를 가질 것입니다.
계산을 수행하기 위해 프로그램 데이터가 시스템 RAM 에서 제어 섹션으로로드됩니다. 제어 섹션은 RAM 에서 두 개의 숫자를 읽고 첫 번째 숫자를 ALU 의 명령어 레지스터에로드 한 다음 두 번째 숫자를 버스를로드합니다. 한편,ALU 에게 무엇을해야하는지 알려주는 명령 코드를 보냅니다. 그런 다음 ALU 는 모든 계산을 수행하고 결과를 CPU 가 읽은 다음 프로세스를 계속할 수있는 다른 레지스터에 저장합니다.
이미지 제공:Rost9/
안토니 Heddings 가 거주하는 클라우드 엔지니어를 위한 LifeSavvy 미디어,기술적인 작가,프로그래머 및에서 전문가가 아마존의 AWS 플랫폼입니다. 그는 How-To Geek 및 cloudsavvy it 에 대한 수백 가지 기사를 작성하여 수백만 번 읽었습니다.전체 바이오 읽기”
Leave a Reply