컴퓨터 구조/Ch2. 명령어 : 컴퓨터 언어
11. 프로그램 번역과 실행
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 프로그램의 번역 과정 C 프로그램을 컴퓨터가 실행할 수 있는 프로그램으로 변환하기 위한 4단계는 다음과 같다. 1. 컴파일 (Compile) 2. 어셈블 (Assemble) 3. 링크 (Link) 4. 로드 (Load) C언어의 번역 계층 상위 수준 언어 프로그램은 어셈블리 언어 프로그램으로 컴파일되고 다시 기계어 형태의 목적 모듈로 어셈블 된다. 링커는 여러 모듈과 라이브러리 루틴을 사용하여 모든 외부 참조를 해결한다. 다음에는 프로세서가 실행할..
10. 병렬성과 명령어: 동기화
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 병렬성과 명령어: 동기화 데이터 경쟁 관계 (Data Race) 태스크가 서로 독립적일 때에는 병렬 처리가 쉽다. 하지만 태스크가 서로 협력해야 할 때에는 어떨까? 이때 협력이란, 자원으로 서로 공유한다는 것으로 보통 다른 태스크들이 읽어야 하는 새로운 값을 어떤 태스크들이 쓰는 것을 의미한다. 태스크가 협력해야 하는 상황에서는 데이터 경쟁관계(data race)의 위험이 크다. 예를 들어, 두 프로세서 P1과 P2가 메모리 구역을 공유하고 있다고..
9. MIPS의 주소 지정 방식
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) MIPS 주소 지정 방식 여러 형태의 주소 표현을 일반적으로 주소 지정 방식(addressing mode)이라고 한다. MIPS에서는 R, I, J 3개의 format으로 주소 지정 방식을 지원한다. 각 그림에서 보라색으로 강조된 부분이 피연산자를 뜻한다. - 수치(Immediate) 주소 지정 피연산자는 명령어 내에 있는 상수이다. - 레지스터 주소 지정 피연산자는 레지스터에 있는 값이다. - 베이스(Base) / 변위(Displacement) ..
8. 하드웨어의 프로시저 지원
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 프로시저 (procedure) 프로시저(procedure)는 제공되는 인수(parameter)에 따라서 특정 작업을 수행하는 서브루틴을 말한다. 프로시저는 프로그래밍에서 함수(function)와 같다고 보면 되며, 이들은 프로그램을 이해하기 쉽고 재사용이 가능하도록 프로그램을 구조화하는 방법 중 하나이다. 인수는 프로시저에 값을 보내고 결과를 받아오는 일을 하므로, 프로그램의 다른 부분 및 데이터와 프로시저 사이의 인터페이스 역할을 한다. 따라서 ..
7. 판단을 위한 명령어
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 조건 명령어 (Conditional Operations) - 조건부 분기 (Conditional Branch) 컴퓨터는 판단 기능이 있어, 입력 데이터나 연산 결과에 따라 다른 명령어를 실행할 수 있다. 우리가 프로그래밍을 할 때 if 문이나 go to 문과 같은 조건문을 사용하여 판단 기능을 표한다. MIPS 명령어로는 아래의 2가지가 존재하며, 이 두 명령어를 조건부 분기(conditional branch)라 부른다. * 조건부 분기 (cond..
6. 논리 연산 명령어
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 다양한 논리 연산 명령어들도 R-format을 사용한다. * 논리 연산 명령어 : 비트들을 워드로 묶는(packing) 작업과 워드를 비트 단위로 나누는(unpacking) 작업을 간단하게 하는 명령어들 자리이동(shift) 연산 모든 비트를 왼쪽 또는 오른쪽으로 이동시키고, 이동 후 빈자리는 0으로 채운다. MIPS의 자리이동 명령어의 이름은 아래와 같다. 1. sll (shift left logical) sll $t2, $s0, 4 # $t2 ..
5. 명령어의 컴퓨터 내부 표현
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 컴퓨터의 2가지 중요한 원칙과 내장 프로그램 1. 명령어는 숫자로 표현된다. 명령어는 컴퓨터 내부에서 높고 낮은 전기 신호의 연속(이진수)으로 저장되므로 숫자로 표현할 수 있다. 실제로 명령어의 각 부분을 숫자로 볼 수 있고, 이 숫자들을 나란히 늘어놓으면 명령어가 된다. 2. 프로그램은 메모리에 기억되어 있어서 숫자처럼 읽고 쓸 수 있다. 이 두 원칙은 내장 프로그램의 개념이 된다. 내장 프로그램 개념은 회계 처리를 하던 컴퓨터가 눈 깜짝할 사이..
4. 부호있는 수와 부호없는 수
Reference : - 컴퓨터 구조 및 설계 MIPS EDITION [6판] / David A. Patterson / 한빛에듀 - 건국대학교 컴퓨터구조 강의 / 박능수 교수님 - https://developbear.tistory.com/ (김베어의 개발일지) 10진수를 2진수로 변환하는 방법 https://angrymoon.tistory.com/432 10진수를 2진수로 변환 계산 방법 일전에 2진수를 10진수로 변환하는 방법에 대해서 알아봤습니다. 오늘은 10진수를 2진수로 변환 계산하는 방법에 대해서 알아보겠습니다. 2진수 10진수 변환 계산 방법 2진수, 10진수의 기본 개념 angrymoon.tistory.com 이진수 컴퓨터 내에서는 일련의 높고 낮은 전기 신호의 형태로 숫자를 저장한다. 이는..