본문 바로가기

Computer Science

(39)
[Computer Architecture] CISC & RISC + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. "명령어 집합 복잡도에 따른 컴퓨터 구조"에서의 "명령어 집합 복잡도"란? => 하드웨어(CPU)가 이해할 수 있는 명령어 집합(기계어)의 복잡도 ex) 많다, 다양하다 CISC (Complex Instruction Set Computer) 1. 메모리가 매우 고가이고, 속도가 느리다. ~> 메모리에서 갖고 올 명령어의 숫자를 줄이자. (한 번에 많이 가져오자.) 2. 낮은 수준의 프로그래밍 기술을 갖고 있다. ~> HW에서 지원해주자. (고급 프로그래밍 언어의 등장) => 명령어 집합(ISA)에서 복잡하지만 강력한 명령어들이 추가되었다. (명령어 집합의 크기 ↑) ex) ..
[Computer Architecture] 주소 지정 방식 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 주소 지정 방식 (addressing mode) 명령어의 피연산자 필드를 사용하여, 데이터 유효 주소(effective address)를 결정하는 방식이다. 데이터 유효 주소: 메모리나 저장 장치에 실제로 유효한 데이터가 저장되어 있는 위치를 가리키는 주소 0-단계 주소 지정 방식 - 유효 주소를 확정하기 위해 연산 과정을 0번 수행한다. - 데이터 유효 주소를 명시하지 않는다. 1-단계 주소 지정 방식 - 유효 주소를 확정하기 위해 연산 과정을 1번 수행한다. - 피연산자 필드가 데이터 유효 주소이다. 2-단계 주소 지정 방식 - 유효 주소를 확정하기 위해 연산 과정을 2번 수행한다. - 피연산자 필드가 데이터의 유효 주소를 ..
[Computer Architecture] 명령어 집합 분류 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 피연산자 수와 명령어 집합 명령어 구성 - 연산 부호(opcode): 어떤 연산을 수행할 것인가 - 피연산자(operand): 연산의 대상이 되는 데이터(들)의 위치 또는 값 등의 정보 피연산자 수에 따른 컴퓨터구조 종류 (시스템 가정) 1) 스택(Stack) 컴퓨터의 0-주소 명령어 ex) ADD => S[top--] + S[top--] -> S[top] 2) 누산기(Accumulator) 컴퓨터의 1-주소 명령어 ex) ADD X => Acc R1 R1 R1 명령어의 길이가 짧다. 3. 스택 안의 데이터를 접근하려는 경우, 스택 내 데이터의 위치에 따라 데이터 접근 시간이 다르다. - 위에 있는 데이터들을 Pop하고, 원하는..
[Embedded Software] PWM 실습 + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. PWM (Pulse - Width - Modulation) 디지털 시그널을 이용하여 아날로그 신호를 모방하는 방법이다. 주어진 시간동안 신호가 높은 상태(1)와 낮은 상태(0)을 반복하는 주기가 존재한다. 주기동안 높은 상태(1)의 지속 시간인 Pulse Width를 조절하여 출력을 제어한다. analogWrite(pin, DutyValue) + DutyValue: 0 ~ 255 => LED 밝기를 제어할 수 있다. LED가 점점 밝아졌다 꺼졌다를 반복하는 아두이노를 제작하라. + LED의 극성에 주의해야한다. (+: 긴 부분, -: 짧은 부분) void setup() {..
[Embedded Software] Interrupt 실습 + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. Polling을 이용하여 스위치를 누르면 불이 켜지고, 꺼지는 아두이노를 제작하라. int sw; int flag = 0; void setup() { pinMode(8, OUTPUT); pinMode(7, INPUT); Serial.begin(9600); } void loop() { sw = digitalRead(7); if (sw == HIGH) { flag = flag ? 0 : 1; Serial.print("flag = "); Serial.println(flag); } digitalWrite(8, flag); delay(1000); } 루프를 돌 때마다 7번 포트에 ..
[Embedded Software] Interrupt + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. Polling vs Interrupt Polling 이전 실습에서 사용된 방식으로 지정한 구간에서만 이벤트가 발생했는지 체크하는 방식이다. (메인 프로그램 안에서만 체크한다.) => 즉 항상 체크할 수 없으므로, 이벤트가 발생했더라도 확률에 따라 놓칠 수 있다. + 이전 실습에서 잘 작동하지 않았던 이유: Polling방식의 코드 + 스위치 바운싱 Interrupt Polling과 달리 언제나 이벤트가 발생했는지 체크한다. ex) OS에서의 마우스 움직임 Interrupt Setting attachInterrupt(digitalPinToInterrupt(GPIO), function, mode); - attachinterrupt..