폴링 방식이란?
- 요청을 확인하는 로직을 특정 주기마다 실행하여 확인하는 방식으로, 정해진 순서(시간)에 상태변화를 확인하여 그에 따른 작업을 하는것이다.
예를 들어 제어를 할 경우에 이런식으로 sw적으로 구현을 할 수 있다. 매 작업을 할때 마다 pin에 신호가 온다면 해당 request를 하는 식이다.
void main()
{
while(1)
{
if (pin==1)
{
Request();
}
doing();
}
}
이 방식은 구현이 쉽고 우선순위를 변경하기가 쉬우나, 시스템의 리소스를 많이 잡아 먹기 때문에 작업 효율이 떨어진다고 볼 수 있다.
인터럽트란?
cpu가 동작을 계속 하다가, 주변장치에 의해 신호가 온다면, 모든 행동을 일시적으로 물리적으로 중단하고, 해당 신호에 해당하는 작업을 마친뒤에 기존의 작업으로 돌아간다.
이런식으로 작동하기 때문에 빠른 반응속도로 대응 할 수 있고, 신호에 의해 동작하기 때문에 특별한 경우가 아니라면 시스템 리소스도 적게 요구된다. 폴링 방식에 비해 조금은 더 구현이 복잡하다는것이 단점이라고 볼 수 있다.
상대 주소 지정 ?
주소 지정은 프로그램이 수행되는 동안 오퍼랜드(data)의 주소들을 가져오는 것을 부르며 즉시,직'간접,.. 등등 여러가지 방법이 사용되고 있다.
그 중에 상대 주소 지정 방식은 유효주소를 계산하기 위해 특정 레지스터 내용에 명령어 주소 필드 값을 더하는 방식이다.특정 레지스터는 PC를 주로 사용하고 유효 주소는 명령어 오퍼랜드에 PC를 더한 것이다.
적은 비트수로 표현할 수 있기 때문에 간결한 명령어 구성이 가능하다는 장점이 있다. 분기 주소가 명령어 단위와 가까운 위치에 있을 때 분기형 명령어에서 종종 사용한다는 특징이 있다.
기억장치로부터 명령어를 읽음으로써 PC가 증가 하므로 유효주소를 계산할때 반드시 이를 고려해야한다.
EA[유효 주소(Effective Address)]=PC + A
출처-
'CS > Computer Architecture' 카테고리의 다른 글
메모리상의 데이터 배치 (0) | 2022.03.18 |
---|---|
텍스트 표현 (0) | 2022.02.15 |
실수를 표현하는 방법 (0) | 2022.02.12 |
정수를 비트로 표현하는 방법 (0) | 2022.02.11 |
비트와 바이트, 드 모르간의 법칙 (0) | 2022.02.11 |