작동 원리: 마이크로프로세서

현재 이 항목을 읽기 위해 컴퓨터나 모바일 장치를 사용하고 있습니다. 컴퓨터나 모바일 장치는 마이크로프로세서를 사용하여 이러한 작업을 수행합니다. 마이크로프로세서는 모든 장치, 서버 또는 랩톱의 핵심입니다. 다양한 제조업체의 많은 브랜드의 마이크로프로세서가 있지만 모두 거의 동일한 방식으로 작동합니다.

마이크로프로세서- 프로세서 또는 중앙 처리 장치라고도 하며 단일 칩에서 만들어진 컴퓨팅 엔진입니다. 최초의 마이크로프로세서는 1971년에 등장한 Intel 4004로 그다지 강력하지 않았습니다. 그는 덧셈과 뺄셈을 할 수 있었고 그것은 한 번에 4비트에 불과했습니다. 프로세서는 단일 칩에서 실행되었기 때문에 놀랍습니다. 이유를 물을 것입니다? 내 대답은 당시 엔지니어들이 여러 칩이나 개별 구성 요소(트랜지스터는 별도의 패키지에 사용됨)에서 프로세서를 생산하고 있었다는 것입니다.

마이크로프로세서가 컴퓨터에서 어떤 역할을 하는지, 어떻게 생겼는지, 다른 유형의 마이크로프로세서와 차이점이 무엇인지 궁금하다면 다음 페이지로 이동하십시오. 컷 아래- 가장 흥미롭고 세부적인 사항이 모두 있습니다.

마이크로프로세서 진행: 인텔

나중에 간단한 가정용 컴퓨터의 핵심이 된 최초의 마이크로프로세서는 1974년에 등장한 단일 칩에 완전한 8비트 컴퓨터인 Intel 8080이었습니다. 최초의 마이크로프로세서는 시장에서 진정한 급증을 일으켰습니다. 1979년 후반에 새로운 모델인 Intel 8088이 출시되었습니다. PC 시장과 그 역사에 대해 잘 알고 계시다면 PC 시장이 Intel 8088에서 Intel 80286으로, 그 중 하나가 Intel 80386과 Intel 80486으로 이동했다는 사실을 아실 것입니다. 그런 다음 Pentium, Pentium II, Pentium III 및 Pentium 4. 이 마이크로프로세서는 모두 Intel에서 만든 것이며 모두 Intel 8088의 기본 설계를 개선한 것입니다. Pentium 4는 모든 코드를 실행할 수 있지만 5000번 수행합니다. 더 빠르게.

2004년 인텔은 다중 코어와 백만 개의 트랜지스터가 있는 마이크로프로세서를 출시했지만 이러한 마이크로프로세서조차도 이전에 만든 칩과 동일한 일반 규칙을 따랐습니다. 표의 추가 정보:

  • 데이트: 프로세서가 처음 도입된 연도입니다. 많은 프로세서가 다시 출시되었지만 클럭 속도가 더 높았으며 이는 원래 출시 날짜 이후 몇 년 동안 계속되었습니다.
  • 트랜지스터: 이것은 칩에 있는 트랜지스터의 수입니다. 다이당 트랜지스터 수가 수년에 걸쳐 꾸준히 증가하고 있음을 알 수 있습니다.
  • 미크론: 칩에서 가장 작은 와이어의 폭(마이크론). 비교를 위해 약 100미크론의 두께를 가진 사람의 머리카락을 인용할 수 있습니다. 치수가 점점 작아지면서 트랜지스터의 수가 증가했습니다.
  • 클록 주파수: 칩이 도달할 수 있는 최대 속도. 클럭 주파수에 대해서는 잠시 후에 말씀드리겠습니다.
  • 폭(버스) 데이터: ALU(산술 논리 단위)의 너비입니다. 8비트 ALU는 더하기, 빼기, 곱하기 등을 할 수 있습니다. 많은 경우에 데이터 버스는 ALU와 너비가 같지만 항상 그런 것은 아닙니다. Intel 8088은 16비트이고 8비트 버스를 가지고 있는 반면 최신 Pentium 모델은 64비트입니다.
  • MIPS: 표의 이 열은 초당 작업 수를 표시합니다. 마이크로프로세서의 측정 단위입니다. 최신 프로세서는 다양한 작업을 수행할 수 있으므로 표에 나와 있는 오늘날의 등급은 의미가 없습니다. 하지만 그 당시 마이크로프로세서의 상대적인 위력을 느낄 수 있습니다.
이 표에서 일반적으로 클럭 속도와 MIPS(초당 작업 수) 사이에 관계가 있음을 알 수 있습니다. 최대 클럭 속도는 제조 프로세서의 기능입니다. 트랜지스터의 수와 초당 연산 수 사이에도 관계가 있습니다. 예를 들어, 5MHz(현재 2.5-3GHz)로 클럭된 Intel 8088은 0.33MIPS(15개 클럭 주기마다 약 1개의 명령어)만 실행합니다. 최신 프로세서는 종종 클록 주기당 두 개의 명령을 실행할 수 있습니다. 이 증가는 칩의 트랜지스터 수와 직접적인 관련이 있으며 이에 대해 자세히 설명하겠습니다.

칩이란 무엇입니까?

칩은 집적 회로라고도 합니다. 일반적으로 마이크로프로세서를 구성하는 트랜지스터가 새겨진 작고 얇은 실리콘 조각입니다. 칩은 1인치만큼 작을 수 있지만 여전히 수천만 개의 트랜지스터를 포함합니다. 더 간단한 프로세서는 크기가 몇 평방 밀리미터에 불과한 칩에 새겨진 수천 개의 트랜지스터로 구성될 수 있습니다.

작동 원리


인텔 펜티엄 4


마이크로프로세서가 어떻게 작동하는지 이해하려면 내부를 살펴보고 내부에 대해 배우는 것이 도움이 될 것입니다. 이 과정에서 어셈블리 언어, 마이크로프로세서의 모국어 및 엔지니어가 프로세서 속도를 높이기 위해 할 수 있는 많은 일에 대해서도 배울 수 있습니다.

마이크로프로세서는 프로세서에게 수행할 작업을 지시하는 기계 명령 모음을 실행합니다. 지침에 따라 마이크로프로세서는 세 가지 주요 작업을 수행합니다.

  • ALU(산술 논리 장치)를 사용하여 마이크로프로세서는 수학 연산을 수행할 수 있습니다. 예를 들어 덧셈, 뺄셈, 곱셈, 나눗셈이 있습니다. 최신 마이크로프로세서는 매우 복잡한 작업을 수행할 수 있습니다.
  • 마이크로프로세서는 한 메모리 위치에서 다른 메모리 위치로 데이터를 이동할 수 있습니다.
  • 마이크로프로세서는 결정을 내리고 이러한 결정을 기반으로 새로운 명령 세트로 이동할 수 있습니다.

엄밀히 말하면 마이크로프로세서는 복잡한 일을 하지만 위에서는 세 가지 주요 활동을 설명했습니다. 다음 다이어그램은 이 세 가지 작업을 수행할 수 있는 매우 간단한 마이크로프로세서를 보여줍니다. 이 마이크로프로세서에는 다음이 포함됩니다.

  • 메모리 액세스를 보내는 주소 버스(8, 16 또는 32비트)
  • 데이터를 메모리로 전송하거나 메모리에서 데이터를 수신하는 데이터 버스(8, 16 또는 32비트)
  • RD(읽기) 및 WR(쓰기)은 메모리에 설치할 것인지 또는 주소 지정 위치를 가져올 것인지 알려줍니다.
  • 프로세서 클럭 시퀀스를 볼 수 있는 클럭 라인
  • 명령 카운터를 0으로 재설정하고 실행을 다시 시작하는 재설정 라인

마이크로프로세서 메모리

이전에 우리는 주소 및 데이터 버스, 읽기 및 쓰기 라인에 대해 이야기했습니다. 이 모든 것은 RAM(랜덤 액세스 메모리) 또는 ROM(읽기 전용 메모리 또는 읽기 전용 메모리, ROM) 중 하나에 연결됩니다. 일반적으로 둘 다입니다. 우리의 마이크로프로세서 예에서 우리는 8비트의 넓은 주소 버스와 동일한 폭의 데이터 버스(또한 8비트)를 가지고 있습니다. 이것은 마이크로프로세서가 2^8 ~ 256바이트의 메모리에 액세스할 수 있고 한 번에 8비트의 메모리를 읽고 쓸 수 있음을 의미합니다. 이 간단한 마이크로프로세서에 주소 0에서 시작하는 128바이트의 내부 메모리와 주소 128에서 시작하는 128바이트의 RAM이 있다고 가정해 보겠습니다.

랜덤 액세스 메모리는 읽기 전용 메모리를 나타냅니다. 읽기 전용 메모리 칩은 영구 사전 설정 바이트로 프로그래밍됩니다. 버스 주소는 RAM 칩에 도달하고 데이터 버스에 맞는 바이트를 알려줍니다. 읽기 라인이 상태를 변경하면 읽기 전용 메모리 칩이 선택한 바이트를 데이터 버스에 표시합니다.

RAM은 RAM의 약자입니다. RAM에는 1바이트의 정보가 포함되어 있으며 마이크로프로세서는 읽기 또는 쓰기 라인이 신호를 보내는지 여부에 따라 이러한 바이트를 읽거나 쓸 수 있습니다. 오늘날의 칩에서 발견될 수 있는 문제 중 하나는 에너지가 없어지자 마자 모든 것을 잊어버린다는 것입니다. 따라서 컴퓨터에 RAM이 있어야 합니다.


RAM 칩 또는 ROM(읽기 전용 메모리) 칩


그건 그렇고, 거의 모든 컴퓨터에는 일정량의 RAM이 포함되어 있습니다. 개인용 컴퓨터에서 읽기 전용 메모리를 BIOS(기본 입출력 시스템)라고 합니다. 시작 시 마이크로프로세서는 BIOS에서 찾은 명령을 실행하기 시작합니다. 그건 그렇고 BIOS 명령도 제 역할을 합니다. 하드웨어를 확인한 다음 모든 정보가 하드 드라이브로 이동하여 부트 섹터를 만듭니다. 부트 섹터는 하나의 작은 프로그램이며 BIOS는 디스크에서 읽은 후 메모리에 저장합니다. 그런 다음 마이크로프로세서는 RAM에서 부트 섹터 명령을 실행하기 시작합니다. 부트 섹터 프로그램은 마이크로프로세서에 하드 디스크에서 RAM으로 가져갈 기타 사항을 표시한 다음 이 모든 작업을 수행합니다. 이것이 마이크로프로세서가 전체 운영 체제를 로드하고 실행하는 방법입니다.

마이크로프로세서 지침

내가 방금 설명한 엄청나게 단순한 마이크로프로세서조차도 실행할 수 있는 명령 세트가 상당히 많을 것입니다. 명령어 모음은 비트 패턴으로 구현되며, 각 비트 패턴은 명령어 섹터에 로드될 때 다른 의미를 갖습니다. 사람들은 짧은 단어의 모음이기 때문에 비트 패턴을 잘 기억하지 못합니다. 그건 그렇고, 이 짧은 단어 집합을 프로세서의 어셈블리 언어라고 합니다. 어셈블러는 단어를 비트 패턴으로 매우 쉽게 변환할 수 있으며 어셈블러의 노력은 실행을 위해 마이크로프로세서의 메모리에 저장됩니다.

다음은 어셈블리 언어 지침 세트입니다.

  • LOADA 멤- 메모리 주소로 레지스터에 로드
  • LOADB 메모리- 메모리 주소에서 레지스터 B로 로드
  • CONB 메모리- 레지스터 B에 상수 값 로드
  • 저장 메모리- 레지스터 B를 메모리 주소에 저장
  • 저장 메모리- 레지스터 C를 메모리 주소에 저장
  • 추가하다- A와 B를 더하고 결과를 C에 저장
  • 보결- A와 B를 빼고 결과를 C에 저장
  • - A와 B를 곱하고 결과를 C에 저장
  • DIV- A와 B를 분할하고 결과를 C에 저장
  • COM- A와 B를 비교하고 결과를 테스트에 저장
  • 점프 주소- 주소로 이동
  • JEQ 주소- 같으면 해결하러 가다
  • JNEQ 주소- 같지 않다면 해결하러 가다
  • JG 주소- 해결을 위해 더 많은 경우 이동
  • JGE 주소- 해결하기 위해 크거나 같으면 이동
  • JL 주소- 해결하기 위해 가십시오.
  • Jle addr- 해결하기에 적거나 같으면 이동
  • 그만- 실행 중지
어셈블리어
C 컴파일러는 이 C 코드를 어셈블리 언어로 번역합니다. RAM이 이 프로세서의 주소 128에서 시작하고 읽기 전용 메모리(어셈블리 언어 프로그램 포함)가 주소 0에서 시작한다고 가정하면 간단한 마이크로프로세서의 경우 어셈블러는 다음과 같을 수 있습니다.

// a가 주소 128에 있다고 가정 // F가 주소 1290에 있다고 가정 CONB 1 // a = 1; 1 SAVEB 1282 CONB 1 // f = 1; 3 SAVEB 1294 LOADA 128 // a> 5인 경우 175로 점프 CONB 56 COM7 JG 178 LOADA 129 // f = f * a; 9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a = a + 1; 13 CONB 114 ADD15 SAVEC 12816 JUMP14 루프로 돌아가기 //

읽기 전용 메모리(ROM)
이제 질문은 "이 모든 명령이 읽기 전용 메모리와 어떻게 통합됩니까?"입니다. 물론 설명하겠습니다. 어셈블리 언어의 이러한 각 명령어는 이진수로 표시되어야 합니다. 단순화를 위해 각 어셈블리 언어 명령어가 고유한 번호를 할당한다고 가정해 보겠습니다. 예를 들어 다음과 같습니다.

  • 로다 - 1
  • 로드 - 2
  • CONB - 3
  • 세이브 - 4
  • 저장 메모리 - 5
  • 추가하다 - 6
  • 보결 - 7
  • - 8
  • DIV - 9
  • COM - 10
  • 점프 주소 - 11
  • JEQ 주소 - 12
  • JNEQ 주소 - 13
  • JG 주소 - 14
  • JGE 주소 - 15
  • JL 주소 - 16
  • Jle addr - 17
  • 그만 - 18
이 숫자를 opcode라고 합니다. 읽기 전용 메모리에서 우리의 작은 프로그램은 다음과 같습니다.

// a가 주소 128에 있다고 가정합니다. // F가 주소 129Addr에 있다고 가정합니다. opcode / value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // 31 LOADA 281809 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // 2B 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 // ADD27 5 // SAVEC 12828 12829 11 // 점프 430 831 18 // 정지

7줄의 C 코드가 18줄의 어셈블러가 되었고 모두 읽기 전용 메모리에서 32바이트가 된 것을 볼 수 있습니다.

디코딩
디코드 명령은 각 연산 코드를 마이크로프로세서 내부의 다양한 구성 요소를 구동하는 신호 세트로 바꿔야 합니다. ADD 명령어를 예로 들어 수행해야 하는 작업을 살펴보겠습니다. 그래서:

  • 1. 첫 번째 클록 주기에서 명령 자체를 로드해야 하므로 디코더는 다음을 수행해야 합니다. 세 가지 상태로 명령 카운터에 대한 버퍼 활성화, 읽기 라인(RD) 활성화, 세 가지 상태의 데이터 활성화 명령 레지스터의 버퍼
  • 2. 두 번째 클록 사이클에서 ADD 명령이 디코딩됩니다. 여기서 할 일은 거의 없습니다. ALU(산술 논리 장치) 연산을 레지스터 C로 설정합니다.
  • 3. 세 번째 주기 동안 프로그램 카운터가 증가합니다(이론적으로는 두 번째 주기에서 겹칠 수 있음).
각 명령어는 우리가 방금 살펴본 것처럼 일련의 일련의 작업으로 나눌 수 있습니다. 그들은 마이크로프로세서의 구성요소를 올바른 순서로 조작합니다. ADD 명령어와 같은 일부 명령어는 2~3개의 클록 사이클이 소요될 수 있습니다. 다른 사람들은 5개 또는 6개의 조치를 취할 수 있습니다.

끝까지 가자

트랜지스터의 수는 프로세서 성능에 큰 영향을 미칩니다. 위에서 볼 수 있듯이 일반적인 Intel 8088 마이크로프로세서는 15주기를 완료할 수 있습니다. 트랜지스터가 많을수록 성능이 향상됩니다. 간단합니다. 많은 수의 트랜지스터는 파이프라이닝과 같은 기술도 가능하게 합니다.

파이프라인 아키텍처는 명령 실행으로 구성됩니다. 하나의 명령어를 실행하는 데 다섯 사이클이 걸릴 수 있지만 동시에 실행의 다른 단계에서 다섯 개의 명령어가 있을 수는 없습니다. 따라서 하나의 명령어가 각 클록 사이클을 완료하는 것처럼 보입니다.

이러한 모든 추세로 인해 트랜지스터 수가 증가하여 오늘날 사용할 수 있는 수백만 달러 규모의 트랜지스터가 탄생했습니다. 이러한 프로세서는 초당 약 10억 개의 작업을 수행할 수 있습니다. 상상해 보십시오. 그건 그렇고, 이제 많은 제조업체가 64비트 모바일 프로세서 출시에 관심을 갖게 되었고 분명히 또 다른 물결이 오고 있습니다. 이번에는 64비트 아키텍처가 패션의 왕입니다. 가까운 시일 내에 이 주제에 대해 살펴보고 실제로 어떻게 작동하는지 알려 드리겠습니다. 아마도 이것이 오늘의 전부일 것입니다. 흥미롭고 많이 배웠기를 바랍니다.

2021 wisemotors.ru. 작동 원리 철. 채광. 암호화폐.