이것은 쉬운 대답이없는 광범위한 질문입니다. 전자가 구리선을 따라 튀어 나와 Firefox에서 웹 사이트를 렌더링하는 데까지 먼 길입니다. 나는 당신에게 개요를 아래에서 위로 제시하고 당신이 올바른 것들을 찾아 보도록 노력할 것입니다.
인코딩 번호
기본 동기는 산술 ¹과 같이 사물을 계산하는 것입니다. 가장 먼저 볼 것은 숫자를 나타내는 방법입니다. 십진수 또는 삼항을 사용하는 많은 접근 방식이 있었으며 8 진 시스템조차 생각하지만 결국 이진이 나왔습니다. 이제 우리는 두 가지 값을 처리하는 장치를 만들어야한다는 것을 알고 있습니다. 과 이라고합시다 .101
이진수로 숫자를 인코딩하는 방법에는 여러 가지가 있습니다. 첫 번째 프로세서를 구축 한 후 특정 방식으로 작업을 수행 할 때의 이점을 알게됩니다. 널리 사용되는 예는 두 개의 보완 및 IEEE float 입니다. 우선, 일반 자연수로 제한하십시오.
게이츠
바이너리 인코딩을 사용한다고 가정하자. 초등학교에서 추가 를 배운 방법을 생각 하고 이진수에 대해서도 똑같이 적으십시오. 부울 대수 의 빌딩 블록 은 이미 당신을 위해 존재합니다; 로직 게이트를 사용하여 기본 가산기 (및 기타 산술 함수)를 쉽게 구축 할 수 있습니다 .
이러한 문을 만드는 방법은 컴퓨터 과학의 범위를 벗어납니다. 전자 공학 은 예를 들어 튜브 또는 트랜지스터를 사용하여 여러 솔루션을 제공했습니다 . 이에 대한 질문은 전기 엔지니어링 스택 교환 으로 이동하십시오.
시계와 상태
모든 게이트가 똑같이 빠르지는 않으며 계산의 모든 부분에 동일한 수의 게이트가있는 것은 아닙니다. 따라서 우리는 개별 작업이 서로를 추월하지 않도록 특별한주의를 기울여야합니다. 전역 시계 를 사용하는 것이 유용한 것으로 입증되었습니다 . 주어진 게이트 네트워크의 결과는 사이클이 끝날 때 출력 와이어의 상태입니다 (게이트가 개별 최종 상태를 향해 계단식으로 배열하는 동안 격렬하게 변경 될 수 있음).
즉, 루프를 연결하는 경우와 같이 다음 사이클이 시작될 때까지 한 사이클의 결과를 저장해야 할 수도 있습니다. 다양한 효과에 사용할 수있는 여러 가지 기본 요소가 있으며 모두 게이트에서 구성됩니다. 일부는 플립 플롭 이라고 합니다. 그것들은 필요에 따라 많은 클럭 사이클 동안 숫자를 저장하는 요소 인 레지스터 를 빌드하는 데에도 사용됩니다 .
아키텍처 및 명령
이제 수많은 디자인 선택이 가능합니다. 프로세서는 어떤 산술 연산을 제공합니까? 당신의 명령은 어떻게 생겼습니까? 초기 설계가 다른 설계에 비해 쉬운 MIPS 아키텍처 를 살펴 보는 것이 교육적 일 수 있습니다 . 계획을 살펴보십시오 .
http://ube.ege.edu.tr/~erciyes/CENG311의 원본
기본적으로 명령, 레지스터 세트, ALU 및 제어를 가져오고 분해합니다 . 명령은 어떤 피연산자에 대해 수행 할 ALU 연산 (보유 된 레지스터 수에 따라), 프로그램 카운터 조작 방법 또는 메모리에서로드 / 저장할 레지스터를 ³ 인코딩합니다.
추가 고려 사항
이제 메모리를 구축하는 방법과 명령을 공급하는 방법을 알아 냈다고 가정하면 현대식으로 작동하는 프로세서가 있습니다. 현대 기계로가는 길에는 많은 선택이 필요합니다. 여기 몇 가지가 있습니다 :
대안
위의 내용은 역사가 어떻게 나타 났는지에 크게 영향을받습니다. 마음이 다른 세계에서는 컴퓨터가 다르게 작동 할 수 있습니다. 실제로, 많은 계산 모델이 있으며 , 그 중 일부는 많은 경우 실제 기계에 대한 추상화로 유용하게 만드는 장점이 있습니다. 또한 뇌가 작동하는 방식, 즉 신경 컴퓨팅 을 가능하게 하거나보다 일반적으로는 DNA 및 양자 컴퓨팅 과 같이 자연 에서 관찰되는 문제 해결 및 정보 저장 전략 을 활용 하려는 시도를 모방하려는 시도가 있습니다 .
아마도 위의 정보는 50 년에서 100 년 후의 모든 고대 역사 일 것입니다.
- 오늘날 컴퓨터로하는 모든 멋진 일은 프로세서가 하나씩 실행하는 많은 작은 산술 작업으로 나뉩니다.
- 모델에서 프로그램이 제어 흐름을 조작 할 수 있도록 허용하면 프로세서가 다음 명령을받는 메모리 주소가됩니다. 테이프와 같은 고정 된 명령 세트 만 읽는 기계를 생각할 수도 있습니다. 실제로 초기 구현은 그렇게했습니다. 점프가 없다는 것은 루프가 없다는 것을 의미합니다. 프로그램은 데이터에 따라 완전히 풀리거나 펼쳐진 일련의 명령이었습니다. 분명히 여러 입력 데이터에 동일한 프로그램을 사용할 수있는 것이 더 강력합니다.
- 당신이 기억이 있다고 가정; 프로세서는 제대로 작동하지만 한 번에 너무 많은 값만 처리 할 수 있습니다. 초기 컴퓨터는 테이프에서 모든 데이터를 읽고 레지스터에 보관했습니다. 오늘날 우리가 알고 있듯이 쓰기 가능한 영구 스토리지는 물론 메모리도 없었습니다.