[태그:] CPU

  • 컴퓨터구조 CPU설계_Quartus 설계_2024

    목차

    없음

    본문내용

    우선 CPU 설계를 하기 전에 컴퓨터 명령어와 기본적인 CPU의 구성을 살펴보고 회로 설계를 진행했다.

    #컴퓨터 명령어

    컴퓨터 명령어는 각각 16진수 코드로 되어있는 마이크로 연산이다. 명령어를 Instruction Register (IR)에 넣어 해석을 진행해 필요한 장치에서 명령어를 실행한다.
    메모리 참조 명령어는 주소가 필요하다. 첫째 자리의 0~E까지를 보고 메모리 참조 명령어임을 확인하고 뒤의 XXX에 주소를 넣는다.
    레지스터를 건드리는 명령어는 정해져 있는 레지스터 명령어 16진수 값을 가져와서 처리한다.

    #기본적인 제어장치의 구성

    명령어가 IR에 들어가면 하위 12 bit( IR 0~11 )는 주소 bit로 할당된다. 그 위 3 bit가 3to8 Decoder에서 D 신호가 되어 나온다. ( D0~D7 )
    가장 상위 bit는 주소 모드를 나타내는 I bit가 나온다.
    명령어를 수행할 타이밍은 4-bit sequence counter ( SC )에서 0부터 숫자를 세기 시작해 4to16 Decoder에서 T 신호=타이밍 펄스가 되어 나온다. ( T0~T15 )
    기본 컴퓨터의 모든 플립플롭과 레지스터는 주클럭 발생기에 의해 제어된다. 제어장치에서 발생된 제어신호가 클럭과 동기되어 레지스터의 상태를 인에이블시킨다. ( 레지스터 선택 )

    #구성될 CPU 내부 로직

    기본 CPU에는 위와 같은 구성으로 내부에 레지스터들이 구성되어 있다.
    SRAM에서는 프로그램을 보관 중이고 사용될 프로그램은 IR로 이동한다.
    IR 밑에 명령어 분석 회로 연결되어 있어 해석을 진행하는 것이 Decoding 과정이다.
    HW의 소자 구성은 정해져 있기 때문에 CONTROL LOGIC GATES 설계가 주목적이다.
    CONTROL LOGIC GATES에서 만든 제어 신호를 각 소자에 뿌려주는 것을 설계하면 된다.

    이번 설계에서는 3-state-buffer인 74244 8-bit 버퍼를 사용하여 각 레지스터들이 버스를 점유하는 것을 선택하게 설계했다. 메모리의 입력과 출력 데이터는 버스에 바로 연결되어 있다.

    출처 : 해피캠퍼스

  • 프로그래밍언어론 ) (1) 메모리에 적재된 프로그램의 기계어 명령어 하나를 컴퓨터의 CPU가 수행하는 과정에 대해 간략히 설명하시오. (2) 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터의 CPU가 수행하기 위해 필

    목차

    1. 다음에 대해 답하시오. (15점)
    (1) 메모리에 적재된 프로그램의 기계어 명령어 하나를 컴퓨터의 CPU가 수행하는 과정에 대해 간략히 설명하시오.
    (2) 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터의 CPU가 수행하기 위해 필요한 프로그래밍 언어 구현 방법을 두 가지 이상 이름만 나열하시오.
    (3) (2)에서 제시한 방법 중 한 가지에 대해서만 10줄에서 20줄 사이로 자세히 설명하시오.

    2. 다음에 대해 답하시오. (15점)
    (1) BNF로 표현된 다음 세 개의 구문을 하나의 EBNF로 합쳐 표현하고 그렇게 표현한 이유를 설명하시오.
    <do-while문> ::= do { <문장들> } while <논리식> ;
    <문장들> ::= <문장> <문장들> | <문장>
    <논리식> ::= True | False
    (2) (1)에서 답한 EBNF 표현을 구문 도표로 표현하고 그렇게 표현한 이유를 설명하시오.

    본문내용

    (1) 메모리에 적재된 프로그램의 기계어 명령어 하나를 컴퓨터의 CPU가 수행하는 과정에 대해 간략히 설명하시오.

    컴퓨터의 CPU가 메모리에 적재된 프로그램의 기계어 명령어를 수행하는 과정은 대체로 다음과 같다:
    ① 명령어 인출 : CPU는 현재 실행할 명령어의 주소를 Program Counter (PC) 라는 레지스터에서 확인한다. PC에 저장된 주소를 참조하여 메모리에서 해당 기계어 명령어를 인출한다. 인출 후, PC는 다음 명령어의 주소로 자동적으로 업데이트 된다.
    ② 명령어 해독 : CPU의 명령어 디코더는 인출된 기계어 명령어를 해석한다. 이 단계에서 CPU는 어떤 연산을 해야 하는지, 어떤 데이터나 레지스터가 필요한지 등의 정보를 파악한다.
    ③ 데이터 인출 : 명령어 실행에 필요한 데이터를 메모리나 CPU 내부의 레지스터에서 가져온다.
    ④ 명령어 실행 : CPU는 해석된 명령어에 따라 특정 연산을 수행합니다. 대부분의 연산은 ALU(Arithmetic Logic Unit)에서 처리된다.
    ⑤ 결과 저장 : 연산 결과는 메모리나 레지스터에 저장된다. 이렇게 명령어 인출부터 결과 저장까지의 일련의 과정을 “명령어 주기”라고 한다. 현대의 고성능 CPU들은 이 과정을 최적화하기 위한 다양한 기술, 예를 들면 파이프라이닝, 분기 예측, 아웃 오브 오더 실행 등을 활용하여 높은 성능을 달성하고 있다.

    (2) 고급 프로그래밍 언어로 작성된 프로그램을 컴퓨터의 CPU가 수행하기 위해 필요한 프로그래밍 언어 구현 방법을 두 가지 이상 이름만 나열하시오.

    출처 : 해피캠퍼스