프로세서를 회로도에 매핑


11

나는 컴퓨터 개발자가 낮은 수준에서 작동하는 방식을 이해하려고 노력하는 소프트웨어 개발자입니다 (.NET, C, C ++ 등의 고급 언어 사용).

나는이 다이어그램을 잘 알고 있습니다.

링크의 다이어그램이 다음과 같은 회로 다이어그램에 어떻게 매핑되는지에 대한 높은 수준의 통찰력을 얻으려고합니다.

예를 들어, 어셈블리 언어 설명을 살펴보십시오.

ADD 1,2

프로세서가 출력으로 '3'을 생성하는 방법을 이해하려고합니다. 이 질문은 간단한 용어로 대답하기 어려울 수 있습니다. 그렇다면 링크가 책에 도움이 될 것입니다.


게시 한 첫 번째 다이어그램을 참조하면 실제 산술에 필요한 세부 정보가 모두 "ALU"라는 큰 블록에 숨겨져 있습니다. 해당 다이어그램의 다른 모든 블록은 ALU에 1,2를 추가하고 "추가"합니다 그리고 결과는 다시 나옵니다. 그것을 알고 있다면, ALU의 작동 방식을 읽을 수 있습니다. 만약 그것이 당신이 요구 한 것이라면 ..
Brian Drummond

5
첫 번째 다이어그램은 두 번째 다이어그램에서 Z80 CPU에 매핑됩니다.
starblue

답변:


7

문제는 컴퓨터가 1 + 2 = 3에 도달하는 방법을 이해하려면 이전보다 약 2 단계의 깊이를 이해해야한다는 것입니다.

대략 컴퓨터는 다음과 같이 높은 수준의 추상화에서 가장 물리적 인 현실에 이르기까지 (학문 분야에서) 구성됩니다.

  1. 응용 소프트웨어
  2. 가상 기기
  3. 운영 체제
  4. BIOS
  5. 임베디드 시스템
  6. IP 블록 (하위 장치 / 주변 장치)
  7. 논리 블록
  8. 게이트 레벨
  9. 트랜지스터 레벨
  10. 반도체
  11. 장치 물리학

컴퓨터가 2 + 1 = 3을 생산할 수있는 이유를 제대로 이해하려면 먼저 "믿음"으로 기꺼이 받아 들일 내용과 내면화 할 때까지 믿지 않을 내용을 결정해야합니다. 그 정보는 당신이 이해하는 것보다 2 단계 아래에 있습니다. 따라서 논리 레벨에서 가산기 회로를 이해하려면 "디지털"트랜지스터 (특히 CMOS)의 기본 사항을 이해해야합니다.

이전 사이트를 예로 들어이 리소스를 고려 하십시오 . 여기에는 반입 및 반출을 포함하여 덧셈 / 뺄셈이 가능한 최소 범용 회로 인 "Full Adder"에 대해 설명합니다.

또한 숫자가 2의 보수 (정수 산술을 위해 현대 컴퓨터에서 사용되는 숫자 시스템) 로 표현되는 방법을 이해해야합니다 .

세계 수준의 입문 과정을 원한다면 Georgia Tech의 Scott Wills 교수를 충분히 추천 할 수는 없습니다. 그는 작년에 암으로 세상을 떠났지만 그의 과정은에 남아 있습니다 . Georgia Tech ECE2030 (컴퓨터 공학 입문) 수업은 교과서와 연습을 모두 온라인으로합니다.

행운을 빕니다!


고마워 +1. C 및 C ++에 대한 경험이 있지만 .NET 개발자입니다. C #이 중개 언어로 컴파일되고 JIT 컴파일러가 IL 코드를 즉석에서 컴파일하여 컴퓨터 아키텍처를 대상으로한다는 것을 이해합니다. 마이크로 컨트롤러가 피연산자와 opcode를 수신하고 출력을 생성하는 방법을 이해하려고합니다. 트랜지스터, 커패시터 등의 전자 부품에 대해 잘 알고 있습니다 (GCSE 레벨)
w0051977

... 그리고 나는 Readings 에서 "Switch Design"으로 시작해서 거기서부터 수업을 진행할 것입니다.
DrFriedParts

귀하의 주제 목록은 질문과 관련이없는 몇 가지 주제를 처리하면서 가장 관련성이 높은 주제는 건너 뜁니다.
Chris Stratton

@Chris-아닙니다.
DrFriedParts

3

나는 대학에서도 같은 것을 배워야했고, 우리는 컴퓨터 구성과 디자인 이라는 책 을 매우 상세하게 사용했습니다 (그러나 여러분의 필요에 따라 너무 상세 할 수도 있습니다).

Patterson과 Hennesy는 "간단한"MIPS 프로세서를 사용했으며 어셈블러에서 일부 샘플 코드를 사용하여 CPU의 전체 기능을 보여주었습니다.

일반적으로 "간단한"프로세서 (Arduino 등)를 가져 와서 함수를 이해하려고 시도하는 것이 좋습니다. 구현 된 명령 코드의 크기가 더 클수록 더 복잡하기 때문입니다.

추신 구글 코드의 초소형 마이크로 프로세서 가 도움이 될 것입니다. Java로 시뮬레이트 된 마이크로 프로세서입니다.


2

Roger Young 의 무료 컴퓨터 작동 방법-프로세서 및 메인 메모리 는 귀하의 질문에 대답하며, 트랜지스터 대신 릴레이를 사용하여 더 잘 이해합니다.


2
그 책이 유용 해 보이지만 답변을 편집하여 전체 제목과 저자 정보를 포함 시키십시오. 이렇게하면 링크가 변경 되어도 나중에 계속 추적 할 수 있습니다.
PeterJ

이것은 내가 당시에 찾고 있었던 것 같습니다. +1. 한번보고 돌아 올게요.
w0051977

-1

나는 여기 에서 내 대답을 찾았다 . 숫자를 추가하는 과정에 대한 개괄적 인 개요입니다.


4
답변에 자료를 요약하면 미래 독자에게 더 도움이됩니다. 외부 리소스에 대한 링크를 제공한다고해서 EE.SE에는 큰 도움이되지 않습니다.
광자

@ThePhoton의 의견을 참고하십시오. 해당 YouTube 비디오가 도움이 될 수 있지만 학습 한 내용을 요약하여 해당 비디오 링크가 끊어진 경우에도 여전히 답변이 될 수 있습니까?
Kortuk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.