전공 62

[시스템 프로그래밍 12 -1강]advanced processor (Stack Frames)

개요우리가 지금껏 쓰던 프로시저(PROC)는 그냥 코드의 위치를 변경하는 것 뿐이었다.사실 high level 언어인 C나 CPP나 모두 함수를 할 때 processor를 쓰는것이다.하지만 고급 언어에서는 함수로 인자를 넘겨주는 것을 볼 수가 있다. 오늘은 어떻게 인자를 함수에 넘겨주는가에 대해서 배울 것이다.물론 그 방법을 이해하기 앞서 필요한 개념들을 먼저 설명하도록 하겠다.Stack Frames1. Stack Parametersstack Frame이란 간단히 말해 다음의 것들을 저장하기 위해서 스택의 영역이다.함수에게 전달된 인수(인자)가 스택에 저장된다.서브루틴의 반환주소(리턴 주소)로컬 변수(함수 안에서 사용하는 로컬 변수로 스택에서 지역변수에 대한 메모리 공간이 할당 되는 것이다.)저장된 레지..

13강 Beyond Digital (아날로그, 양자컴퓨터,HDL등등)

아날로그 신호자연스러운 신호는 아날로그 신호이다. 예: 빛, 소리, 열(온도), 압력아날로그 신호 관찰 방법? 센서로 감지한다.주변 환경의 이벤트 또는 변화를 감지하는 장치예 ) 카메라, 마이크, 온도계, 기압계…아날로그 전압을 디지털로 변환하는 방법? 아날로그-디지털 컨버터(ADC)아날로그 전압 또는 전류를 디지털 숫자로 변환하는 전자장치디지털 데이터를 아날로그로 변환하는 방법? : 디지털-아날로그 변환기 (DAC)디지털 번호를 아날로그 신호로 변환하는 전자장치스피커로 소리를 출력하는 경우 예시입력 신호에 따라서 전압을 설정해줘서 그 값을 출력해줍니다.그 전압으로 스피커를 움직이게 해줘서 소리를 내개 해준다.디지털 전자 컴퓨터우리는 PC, 노트북, 스마트본 등과 같은 디지털 전자 컴퓨터를 사용했다.디지..

12강 Memory and Storage Devices (RAM, SRAM,ROM,FLASH memory)

지금까지는 정보를 어떻게 처리할지에 대해서 배웠다면 이제부터는 정보를 어떻게 저장할 지에 대해서 배울 차례이다.오늘 배울 거는 매우 큰 수준의 byte의 수준의 저장을 배울 거싱다. (RAM, ROM, Flash memory, HDD, SSD)RAMRandom Access Memory (RAM)임의의 순서로 읽고 쓸 수 있는 메모리 유형(~랜덤 액세스) 일반적으로 휘발성(volatile) 메모리이다.전원이 꺼지면 RAM의 콘텐츠가 제거됩니다. 일반적으로 작업 중인 데이터를 저장하고 기계 코드를 저장하는 데 사용됩니다.Static RAM (SRAM)플립플롭 또는 트랜지스터를 사용하여 구현됨 DRAM보다 빠른 읽기/쓰기 속도 일반적으로 CPU 캐시, CPU 레지스터 파일, HDD 버퍼 및 라우터 버퍼에 사용..

11강 순차논리 회로 다양한 예제 (비동기 카운터,Modulo-m Counter, Preset Counter,Serial-to-Parallel Register, Serial-to-Serial Register,parallel-to-parallel register)

지난 시간에는 동기모드에 대해 배웠다.이번시간은 비동기모드 카운터와 레지스터에 대해 배운다.동기 카운터는 같은 클럭 신호를 받았었다.복습 : 동기 카운터4비트 동기 카운터는 4개의 j-k flip flop을 이용하면서 and gate 2개를 이용해서 셀 수가 있었다.비동기 카운터비동기 카운터는 플립플롭이 공동 클럭 신호를 사용하지 않는 카운팅 회로이다.비동기 카운터의 클럭 시그널은 이전 출력에서 나오는 JK플립플롭의 결과 값이다.이전에 동기 카운터에서는 가장 앞에 J,K에만 1이 들어갔지만 이제 비동기는 모든 J,K에 1이 들어가게 된다.이말은 쉽게 말해서 모든 JK-Flip-Flop이 토글 모드로 동작한다는 의미이다.이것의 별명은 Ripple counter이다. (이유: 파도처럼 작동하기 떄문에)이슈 ..

10강 Sequential Logic Circuits2 Design Process (Finite-state Machine(FSM) State transition table,Excitation table, 동기 카운터)

어떻게 Sequential Logic Circuits을 만들지 다뤄보겠다.JK Filp flop 복습심볼진리표더 풀어서 쓴 진리표여가표 (Excitation table)input과 output으로 보는 진리표와 달리 상태의 변화에 따라 JK의 input이 무엇이어야 하는지 나타내는 표이다. Finite-state Machine : 우리가 Sequential Logic Circuits을 쓸 때 state를 가지고 있는데 그 state를 표현할지에 대해서 어떻게 표현할 지 보여주기 때문에Design Process of Sequential Logic CircuitsFinite-state Machine(FSM)프로그래밍 할 때도 많이 사용된다.현재 내가 짜고싶은 알고리즘을 표현 할 수 있다.한정된 상태를 가진 ..

9강 Sequential Logic Circuits : 메모리 소자.(Flip-flop과 latch들)

복습 Combinatorial Logic Circuit(조합논리 회로) vs. Sequential Logic Circuit (순차논리 회로) Combinatorial Logic Circuit과 Sequential Logic Circuit의 가장 큰 차이점은 입력이다.Combinatorial Logic Circuit 현재의 입력이 output에 영향을 준다.stateless(memotyless) 라고 부른다.예시 : arithmetic logic unit (ALU), half adders, full adders, multiplexers, encoders, and decodersSequential Logic Circuit 결과에 현재의 입력 뿐 아니라 과거의 입력도 영향을 준다.예시 : TV 채널sequen..

7강 Combinatorial Logic Circuits 더 많은 예제

복습Half adderFull adderAdder2개의 half adder를 사용하는 Full adderRipple-carry adder리플캐리 에더는 n비트 바이너리 숫자를 더할 수 있다.n개의 full adder의 carry-out bit 는 다음 계산기의 carry-in bit가 된다.Parallel adder (병렬 계산기)라고 불린다.4비트 리플 캐리 계산기 예시 빼기 기능이 있는 리플 캐리 계산기뺄셈은 2의 보수를 이용해서 할 수가 있다.4비트 리플 캐리 계산기(빼기 기능이 있는)더하기 1은 C0으로 했구나..! 2개의 4비트 계산기를 사용하는 1-nibble BCD adder BCD와 Binary계산차이바이너리를 BCD로 계산하는 방법 : 합이 9보다 크면 6을 더한다.따라서 BCD 캐리비트..

6강 Combinatorial Logic Circuits 01

Combinatorial Logic Circuit 조합 논리 회로현재 입력으로만 출력이 나오는 디지털 로직이다.산술논리장치(ALU) , half adders, full adders, multiplexers, encoders, and decoders 등이 있다.half adders : 올림 자릿수를 처리하지 못하고 입력이 2개뿐인 가산기full adders : 올림 자릿수까지 한번에 사용하는 가산기Sequential Logic Circuit 순차 논리 회로현재 입력과 과거의 입력을 이용해서 출력이 나오는 디지털 로직이다.sequential logic circuit(순차 논리)은 상태(메모리)를 가진다는 점조합논리에서는 상태(메모리)가 없다.예시 : TV채널 / 볼륨 변경하기조합 논리 회로를 설계하는 방법론..

[시스템 프로그래밍 11강] Multiplication and Division Instructions & Extended Addition and Subtraction

Multiplication and Division Instructions곱셈 나눗셈 명령.1. MUL (unsigned multiply) Instruction(명령)Arithmetic 연산을 하면서 부호가 있는 것과 없는 것 들을 살펴봤다.이 명령은 unsigned한 값들의 곱을 의미한다.대부분의 Arithmetic 오퍼레이션은 피연산자가 2개였고 대부분이 바이너리 였다. 다만 이 명령은 특이하게도 피연산자를 하나만 받는다는 특징이 있다.그렇다면 나머지 하나의 연산자는 지정이 되어있다는 뜻이다.이 연산자는 피연산자가 메모리나 레지스터이다.상수가 피연산자로 오지 않는다!MUL명령의 3가지 버전8비트의 피연산자가 있다면, 나머지 하나는 AL레지스터로 고정이다.그 결과를 AX레지스터로 집어넣는다.16비트인 경..

728x90