Study/컴퓨터 구조8 컴퓨터 구조 - MIPS 구조 1. MIPS 시스템 - 1989년대 스탠포드대학에서 John Hennessy가 그의 동료들과 함께 개발되었다 - Silicon Graphics, Nintendo, Cisco의 제품에서 사용되고 있다. - 디자인 원리 · 규칙적인 것이 간단성을 위해 좋다 · 많이 발생되는 사항을 빨리 처리한다 · 적을수록 빠르다 · 좋은 설계는 좋은 절충안을 요구한다 2. 설계 원칙 1 - 규칙적인 것이 간단성을 위해 좋다 - 일관성 있는 명령어의 형태 - 같은 수의 피연산자 (두 개의 source와 한 개의 destination) - 하드웨어로 구현하기 쉽다 - 명령어 1) 덧셈 (Addition) ≫ High-level code : a = b + c; ≫ MIPS assembly code : add a, b, c 2.. 2020. 6. 12. 컴퓨터 구조 - 캐시 기억장치 1. 캐시 기억장치 - 주기억장치에 저장되어 있는 명령어와 데이터 중의 일부를 임시적으로 복사해 저장하는 장치 1) 특징 - 명령어와 데이터를 저장하고 인출하는 속도가 주기억장치보다 빠름 - 자주 사용되는 명령들을 저장해 두었다 중앙처리장치(CPU)에 빠른 속도로 제공함 - 동작이 느린 주기억장치와 빠른 CPU 사이에서 속도차이를 줄여주는 고속 완충기억장치의 역할을 한다 - 캐시기억장치의 용량에 의해 CPU의 가격이 결정된다 * 확인해서 캐시 기억장치에 CPU가 원하는 데이터가 있다면 캐시 기억장치에서 가져옴 2) 캐시 기억장치가 없는 시스템의 동작 원리 - CPU가 명령어와 데이터를 인출하기 위해선 주기억장치에 접근해야 된다 - 주기억장치에서 명령어 혹은 필요한 정보를 획득해 CPU내의 명령어 레지스터.. 2020. 6. 6. 컴퓨터 구조 - 분기 명령어와 서브루틴 1. 분기 명령어 - BRZ(Branch if Zero) 주소번지 : 조건코드가 0이면 지정 주소 번지로 분기하라는 명령어 - BR 주소번지 : 무조건 지정 주소 번지로 분기하라는 명령어 - BRE(Branch if Equal) R1 R2 주소번지 : 레지스터 R1, R2의 내용이 같다면 지정 주소번지로 분기하라는 명령어 * 분기하다 : 프로그램의 실행 순서를 변경하여 다른 명령을 실행할 수 있게 하다 위의 개념을 알고 아래와 같은 예시를 해석하면 다음과 같이 해석할 수 있다 2. 서브루틴 - 사용자가 원해서 메인에서 진행을 하다 다른 코드 블록에 가 처리하고 결과를 얻는 것 - CALL로 블록을 호출을 하고 RET 호출한 곳으로 복귀한다 1) 호출 명령어 CALL - 현재 PC(Program Count.. 2020. 5. 29. 컴퓨터 구조 - 메모리 구조와 레지스터 1. 메모리 구조 - 프로그램을 실행시키기 위해 메모리 공간이 필요함 - 프로그램을 실행시킬 때 가장 먼저 프로그램이 메모리에 로드 됨 - 메모리 공간은 코드, 데이터, 스택, 힙 영역으로 나뉜다 1) 코드(텍스트) 영역 - 실행할 프로그램의 소스 코드가 저장되어 있는 영역 - 실행 파일을 구성하는 명령어(함수, 제어문, 상수 등)들이 저장된다 - 저장된 명령어를 CPU에서 하나씩 가져가 처리한다 2) 데이터 영역 - 전역변수와 static 변수, 배열, 구조체 등이 할당되는 영역 - 프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 소멸하는 영역 - 초기에 사용할 메모리를 확보 - 초기화 된 데이터는 data영역에 저장 - 초기화 되지 않은 데이터는 BSS(Block Stated Symbo.. 2020. 5. 23. 컴퓨터 구조 - 명령어를 효과적으로 실행하기 위한 기법 1. 주소 지정 방식 - 주소 : 주기억자치에서 데이터가 저장된 위치 - 주소 지정 방식 : 주소를 지정하는 방식 - 유효 주소 : 데이터가 저장된 기억장치의 실제 주소 1) 직접 주소 지정 방식 EA = A (유효 주소 = 기억장치 주소) - 가장 일반적인 개념의 간단한 주소 방식 - 오퍼랜드 필드의 내용이 유효 주소가 되는 방식 - 얻은 데이터의 기억장치 주소를 가리킨다 - 장점 · 데이터 인출을 위해 오퍼랜드에 저장된 해당 주소의 기억 장치에 한번만 액세스 · 명령어 형식이 간단함 - 단점 · 연산 코드를 제외하고 남은 비트들이 주소 비트로 사용되기 때문에 지정할 수 있는 기억장소의 수가 제한됨 · 많은 수의 주소를 지정할 수 없음 2) 간접 주소 지정 방식 EA = (A) (유효 주소 = 기억 장.. 2020. 5. 23. 컴퓨터 구조 - 어셈블리 언어 1. 컴퓨터 프로그래밍 언어 1) 상위 프로그래밍 언어 - 컴파일러나 인터프린터에 의해 기계어로 번역 - 사람이 이해하기 쉬움 - C, C++ 2) 하위 프로그래밍 언어 - 하드웨어와 가까워진 언어 - 기계어, 어셈블리어 2. 어셈블리 언어 - 기계어를 사람이 사용하는 언어에 가깝게 문자로 기호화 - 중앙처리장치에 따라 어셈블리 언어의 형식이 다르다 - 어셈블러 : 어셈블리 언어를 번역해 오브젝트 코드를 생성하는 프로그램 1) 어셈블리 명령어 레이블 부 : 연산부 오퍼랜드 부 ; 주석부 (1) 레이블 부 - JUMP, LOOP와 같은 순환/반복 명령에서 CPU 실행을 해당 레이블로 이동시킬 때 사용 - 레이블을 생성할 때는 8문자 이내의 영문자/숫자를 사용 - 이름 중 공백이 있으면 안됨 (2) 연산 부.. 2020. 4. 18. 이전 1 2 다음