일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 네트워크 아키텍처의 기본 개념
- 비디오 처리 기술의 개요
- 전송매체의 종류
- 애니메이션 기법
- 통신제어의 구조
- 교환 통신망과 데이터
- 애니메이션의 활용 분야
- 링크 연결의 설정 원리
- 흐름제어의 정의
- 변복조기의 개념과 기능
- 네트워크 아키텍처의 비교
- 네트워크 아키텍처의 종류
- 통신제어의 원리
- 전방 처리기의 개념과 기능
- 애니메이션 기법의 종류
- 애니메이션 저작도구의 특징
- 체증제어의 정의
- 링크 연결의 해제 원리
- 애니메이션 저작도구의 종류
- 데이터 전송 코드
- 교환 통신망과 데이터의 교환 방식
- 애니메이션 기술의 발전 과정
- 애니메이션 기술의 개요
- 병렬처리 시스템의 분류 방법
- 병렬처리기의 정의
- 네트워크의 형태
- 비디오 처리 기술의 발전
- 상호연결망의 구조
- 병렬처리기의 종류
- 병렬처리 시스템의 개념
- Today
- Total
마이크로 연산과 레지스터의 종류에 대해서
마이크로 연산과 레지스터의 종류에 대해서 알아보겠습니다. 먼저 마이크로 연산이란 레지스터 사이의 전송 정보 동작을 말합니다. 이는 레지스터에 저장된 데이터를 가지고 실행되는 동작으로 하나의 클록 펄스 동안에 실행되는 가장 기본적인 동작입니다. 마이크로 연산의 종류는 크게 4가지로 구분됩니다. 바로 레지스터 전송 마이크로 연산, 산술 마이크로 연산, 논리 마이크로 연산, 시프트 마이크로 연산입니다. 이제부터 각 마이크로 연산과 레지스터의 종류에 대해서 자세히 파헤쳐보도록 하겠습니다. 먼저 레지스터 전송 마이크로 연산은 레지스터에 저장되는 레지스터의 종류에 따라서 데이터 레지스터, 주소 레지스터, 상태 레지스터로 구분됩니다. 또한 레지스터의 사용 용도에 따라 범용 레지스터와 특수 레지스터로 나뉘게 되며, 레지스터의 소자는 플립플롭에 모두 고유의 주소값을 갖습니다. 첫 번째로 레지스터 전송 마이크로 연산의 주소 레지스터는 메모리 주소 레지스터가 있습니다. 이 레지스터는 주기억장치에 있는 명령어나 데이터를 읽거나 쓰기 위해서는 주소를 먼저 지정해야 하는데 메모리 주소 레지스터의 주소가 주소 버스를 통해서 메모리의 주소를 지정하게 됩니다. 다음으로 프로그램 카운터입니다. 프로그램 카운터는 수행해야 할 다음 명령어의 주소를 지정합니다. 보통 프로그램 카운터의 내용이 메모리 주소 레지스터로 전송되고 그 내용이 주소 버스를 통해서 메모리의 주소를 지정하게 됩니다. 다음은 스택 포인터입니다. 스택 포인터는 프로그램 수행 중에 서브 루틴이 발생하거나 인터럽트가 발생했을 때 현재 레지스터의 내용을 저장해야 하는데 이때 레지스터를 저장하기 위한 스택 영역 메모리의 주소를 기억합니다. 다음으로 제어 메모리 주소 레지스터입니다. 제어장치에는 명령어를 단계적으로 처리하기 위한 마이크로프로그램이 있는 메모리의 주소를 기억하는데 이것이 바로 제어 메모리 주소 레지스터입니다. 다음은 인덱스 레지스터입니다. 인덱스 레지스터는 기준이 되는 주소에 인덱스 레지스터의 변위 값을 더해서 유효한 주소를 발생시킵니다. 또한 데이터의 블록 전송에 사용됩니다. 주소 레지스터의 마지막은 베이스 레지스터에 기준이 되는 주소가 있고 여기에 변위 값이 더해져 유효 주소를 발생시키는 베이스 레지스터가 있습니다. 다음으로 데이터 레지스터에 대해서 살펴보겠습니다. 먼저 메모리 데이터 레지스터는 주기억장치에서 데이터를 읽어오거나 반대로 데이터를 주기억장치에 기록할 때 사용되는 레지스터입니다. 이 레지스터의 내용이 데이터 버스를 통해서 주기억장치에 기록되거나 주기억장치의 내용이 이 데이터 버스를 거쳐서 메모리 데이터 레지스터에 저장됩니다. 그리고 누산기는 연산 장치의 입력값을 저장하거나 연산이 끝난 후에 결과값을 저장합니다. 누산기의 데이터가 메모리 데이터 레지스터로 이동되고 데이터 버스를 통해서 주기억장치로 전송됩니다. 다음은 연산 장치에서 연산 중에 중간값을 임시로 저장하는 임시 기억장치가 있습니다. 마지막으로 상태 레지스터입니다. 상태 레지스터는 중앙처리장치에서 수행되고 있는 프로그램의 상태 정보를 기억하는 레지스터입니다. 일반적으로 프로그램 상태 레지스터라고도 합니다. 그렇다면 레지스터 간의 정보 전달은 어떻게 할까요? 전송 방법은 직렬 전송과 병렬 전송이 있습니다. 직렬 전송은 시프트 레지스터의 데이터가 클록 펄스에 동기돼서 한 클록에 1비트씩 전송되는 방식입니다. 레지스터의 데이터 전송이 여러 클록 펄스 동안 이루어지는 전송이며, 4비트 모두 전송하는 데 걸리는 시간을 워드 타임이라고 부릅니다. 그리고 병렬 전송은 레지스터의 데이터 전송이 한 클록 펄스 동안 이루어지는 전송입니다. 두 번째는 산술 마이크로 연산입니다. 그 종류로는 사칙연산인 덧셈, 뺄셈, 증가, 감소, 보수 연산 등이 있습니다. 세 번째 마이크 연산은 논리 마이크로 연산입니다. 대표적으로 AND, OR, XOR, 보수가 있는데 먼저 SET 연산입니다. SET 연산은 한 레지스터의 특정 비트를 강제로 1로 만들 때 사용되는데 이 연산이 바로 OR 연산입니다. 그리고 한 레지스터의 특정 비트를 강제로 0으로 만들 때 사용되는 MASK 연산이 있는데 이 연산이 AND 연산입니다. 그리고 한 레지스터의 특정 비트를 강제로 보수로 만들 때 사용하는 XOR 연산이 있습니다. 마이크로 연산의 마지막 종류는 시프트 마이크로 연산입니다. 시프트 마이크로 연산은 입력 데이터의 비트들이 서로 이웃한 비트로 자리를 옮기는 연산을 말합니다. 우측 시프트, 좌측 시프트, 순환 시프트가 있으며 비트들이 시프트될 때 첫 번째 플립플롭은 직렬 입력을 통해서 새로운 이진 정보를 받아들입니다. 더 자세히 살펴보자면 우선 좌측 시프트는 비트들이 한 칸씩 왼쪽으로 이동하며, 우측 시프트는 비트들이 한 칸씩 오른쪽으로 이동한다는 특징이 있습니다. 그리고 순환 시프트는 최상위, 최하위에 있는 비트를 버리지 않고 반대편 끝에 있는 위치로 삽입됩니다. 이러한 특징으로 인해 로테이트 시프트라고도 불립니다. 이 외에 산술적 시프트도 존재합니다. 이는 부호가 있는 정수인 경우에 부호 비트를 고려해 수행되는 시프트로 부호 비트는 남겨두고 데이터 비트만 시프트 시킵니다. 추가로 산술적 시프트도 좌측과 우측으로 시프트가 가능합니다. 지금까지 마이크로 연산과 레지스터의 종류에 대해서 알아봤습니다.