컴퓨터 사이언스/컴퓨터 구조

컴퓨터 사이언스/컴퓨터 구조

명령어 사이클

프로그램을 실행하고, 명령어 한 줄이 동작할 때마다 메모리와 CPU에서 일어나는 마이크로 연산을 명령어 사이클이라고 한다. 명령어 사이클의 순서는 다음과 같다. 인출 사이클 -> 간접 사이클 -> 실행 사이클 -> 인터럽트 사이클 인출 사이클 : 메모리에서 명령어를 CPU로 가져오는 단계 실행 사이클 : CPU에서 명령어를 실행하는 단계. 여기서 제어 장치는 명령어 레지스터에 담긴 값을 해석하고, 제어 신호를 발생시킨다. 간접 사이클 : 명령어를 실행하기 위해 한번 더 메모리 접근을 하는 과정을 간접 사이클이라고 한다. 간접 주소 지정 방식을 사용하는 경우에 필요한 사이클이다. 인출 사이클 인출 사이클은 현재 PC에 있는 주소의 내용을 가장 최근에 인출된 명령어가 저장되어 있는 레지스터인 IR 레지스터에..

컴퓨터 사이언스/컴퓨터 구조

레지스터의 역할과 종류

레지스터 레지스터는 CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 다목적 공간이다. 레지스터의 역할 레지스터의 역할은 크게 2가지로 나눌 수 있다. 첫번째, CPU 내부에 존재하며 연산제어 및 디버깅 목적으로 사용된다. 두번째, 일시적 메모리 역할을 한다. 이로인해 CPU가 메모리에 데이터를 가져오게 되면 시간이 오래 소요되지만, CPU 내부에 있는 레지스터에 데이터를 가져오면 매우 빠른 시간내에 동작이 가능하다. 또한 연산을 위한 데이터도 저장하지만, 연산 결과도 저장한다. 레지스터의 종류 레지스터의 종류에는 DR, AR, PC, IR, MAR, MBR, PSR 등이 있다. DR 레지스터 Data Register를 DR 레지스터라고 하고, 데이터 레지스터라고 한다. 메모리에서 전달되는 ..

컴퓨터 사이언스/컴퓨터 구조

Segmentation과 Paging의 개념 및 장단점 정리

세그멘테이션과 페이징은 컴퓨터 메모리 관리 기법이다. Segmentation 세그멘테이션은 메모리를 의미있는 단위인 segment로 나누는 방법이다. 각 세그먼트는 시작 주소와 길이를 가지며, 다른 유형의 데이터(코드, 데이터, 스택)을 위해 사용된다. 세그멘테이션은 메모리를 더 유연하게 관리할 수 있게 해주며, 프로그램의 논리적 구조를 반영할 수 있다. 장점 : 메모리를 논리적 단위로 나누어 프로그램의 구조를 반영하고, 세그먼트별 보호와 공유가 용이하다. 단점 : 외부 단편화 발생 가능성이 있고, 메모리 관리가 복잡해질 수 있다. Paging 페이징은 메모리를 동일한 크기의 블록. 즉, 페이지로 나누는 방법이다. 각 페이지는 가상 메모리 주소와 매핑되며, 페이지 테이블을 통해 물리적 메모리 주소로 변환..

컴퓨터 사이언스/컴퓨터 구조

주소 지정 방식

우선 그 전 포스팅과 관련하여 이번 포스팅에서 알아야할 내용은 명령어의 오퍼랜드 필드에 메모리나 레지스터의 주소를 담는 경우가 많고, 그래서 오퍼랜드 필드를 주소 필드라고 부른다는 점을 알아야 한다. 그렇다면 왜 오퍼랜드 필드에 메모리나 레지스터의 주소를 담는 걸까? 그 이유는 명령어의 길이 때문이다. 즉, 오퍼랜드 필드 안에 메모리 주소가 담긴다면 표현할 수 있는 데이터의 크기가 하나의 메모리 주소에 저장할 수 있는 공간만큼 커지기 때문이다. 예를 들어, 만약에 한 주소에 16비트를 저장할 수 있는 메모리가 있다고 가정하면, 이 메모리 안에 데이터를 저장하고, 오퍼랜드 필드 안에 해당 메모리 주소를 명시한다면 표현할 수 있는 정보의 가짓수는 2^16개로 확 늘어날 것이다. 또한 오퍼랜드 필드에 메모리 ..

컴퓨터 사이언스/컴퓨터 구조

연산 코드와 오퍼랜드

기계어와 어셈블리어를 이루는 하나하나는 명령어이다. 이번 포스팅과 다음 포스팅에서 이 하나의 명령어를 자세히 들여다보면서 연산 코드, 오퍼랜드, 주소 지정 방식이라는 개념에 대해서 정리해보려 한다. 명령어는 '무엇을 대상으로, 어떤 작동을 수행하라.'라는 구조로 되어있다. 즉, 연산 코드와 오퍼랜드로 구성되어 있는데, '명령어가 수행할 연산'을 연산 코드라고 하고, '연산에 사용할 데이터' 또는 '연산에 사용할 데이터가 저장된 위치'를 오퍼랜드라고 한다. 또한 연산 코드를 연산자라고 하기도 하고, 오퍼랜드를 피연산자라고 하기도 한다. 그럼 우선 오퍼랜드부터 자세히 알아보자. 오퍼랜드 오퍼랜드가 담기는 영역을 오퍼랜드 필드라고 한다. 그래서 오퍼랜드 필드에는 숫자와 문자 등을 나타내는 데이터 또는 메모리나..

kimjingyu
'컴퓨터 사이언스/컴퓨터 구조' 카테고리의 글 목록