시스템: 어떤 목적을 위해 서로 상호작용하는 구성요소들의 집합.
컴퓨터 시스템, math 시스템, 사회 시스템 등등
시스템을 사용하는 사용자
의 관심 정도에 따라서 얼마나 상세하고 디테일하게 분석할지가 달라진다
시스템의 분류
1. 블랙 박스형 시스템: 가장 단순한 형태. 입력과 출력만이 관심 있음.일반 사용자
가 주로 관심 대상이다.
2. 구성요소의 집합으로서의 시스템: 외부 입력을 어떻게 출력으로 반환할지. 그 전개 방식에 관심이 있는 사람들의 시스템 분류법. 프로그래머
는 컴퓨터 시스템을 바라볼때 구성요소의 집합으로서 분류할 줄 알아야 함.
컴퓨터 시스템 뿐만 아니라 여러 시스템들은 구성요소들을 가지고 있는데 보통 데이터라는 요소가 있다. 그 데이터를 표현하는 방식에는 아날로그와 디지털이 있음
아날로그 방식
디지털 방식
아날로그 시스템 | 디지털 시스템 |
---|---|
입력과 출력이 아날로그 데이터인 시스템 | 입력과 출력이 디지털 데이터인 시스템 |
눈금과 바늘 등으로 값을 확인하는 계기 시스템들 | 정확한 값이 딱 떨어지는 전자식 계기 시스템 |
------ | ----- |
디지털 시스템의 장점
인식이 편리
하다융통적으로 실행 순서 조절
이 가능단순
해진다.안정
적견고
정확
디지털 시스템 설계 전체 단계
요구사항 분석 -> 사양정리 -> 디지털 시스템 설계
-> 프로토 타입 제작 -> 테스트 및 디버깅 -> 생산
디지털 시스템 설계 단계의 구체적인 순서
회로 설계 -> 논리 설계 -> 시스템 설계 -> 실제적 설계
회로 설계(curcuit design): 논리 소자(logic gate)를 만들기 위해 능동소자와 수동소자를 연결하는 단계 -> 생산물: 논리소자 -> 마치 원시 타입, 원시 함수를 만드는 것과 비슷
논리 설계(logic design): 논리회로를 만들기 위해 논리소자들을 연결하는 단계 -> 생산물: 논리 회로 -> 마치 사용자 클래스들 같은 느낌쓰
시스템 설계(system design): 논리회로, 기억장치 등을 조합해서 프로세서, 입출력 제어장치 등을 설계하는 단계 -> 생산물: 디지털 시스템 -> 전체 프로그래밍 같은 느낌
실제적 설계(physical design): 시스템 설계 단계의 결과물을 PCB기판이나 와이어랩에 설치하는 단계 -> 생산물: 디지털 시스템의 실물화 -> 프로그램 빌드해서 실행파일 만들어서 설치하는 느낌
회로설계(논리 소자를 만듬) -> 논리설계(논리 회로를 만듬) -> 시스템 설계(디지털 시스템을 만듬) -> 실제적설계(제품을 만듬)
이 기본골자를 가져간 채로 들어간다.
전자식 데이터 처리 시스템(Electronic Data Processing System)이라고 한다.
- 기본요소 : 사람, 하드웨어, 프로시저, 소프트웨어, 데이터
- 위 중 하나도 없다면 시스템의 기본 요소가 없는 것이므로 의미 없는 시스템이 된다.
- 이 중에서 사람이 제일 의미 없어 보이긴 하는데 24시간 자동으로 돌아가는 시스템이라도 사람이 입력을 통해 동작을 시킨거고, 인공지능도 같은 맥락이므로 컴퓨터 시스템의 기본요소에는 사람이 들어간다.
컴퓨터를 시스템 측면에서 분석: 컴퓨터 공학에서 바라볼때의 기본
- 구성요소는 무엇인가?
- 각 구성 요소는 어떤 기능을 갖는가?
- 입출력은 무엇인가?
입력장치, 제어장치, 기억장치, 연산장치, 출력장치
집적회로(IC or Chip or sillicon semiconductor crystal)
- 디지털 회로의 구성 요소
- 디지털 게이트의 기능을 수행하는 전자 소자를 포함한 실리콘 반도체 크리스탈
- 내부에 여러 게이트들이 목적에 부합되도록 상호 연결되어 있는 상태
- 즉 이 자식은 논리 설계 단계의 부산물로 디지털 시스템의 기본 구성 요소이다.
집적도(level of intergration)
- 실리콘 칩의 단위 면적당 집적할 수 있는 전자 소자(gate)의 수를 표현하는 개념
집적도 | 소자 수 |
---|---|
소규모 집적(Smal Scale Intergration) | 계산기, 전자시계 |
중규모 집적(Medium SI) | 레지스터, ALU, 디코더, 멀티플렉스 |
대규모 집적(Large SI) | 초기 마이크로프로세서, 메모리 칩 |
초대규모 집적(Very Large SI) | 현대 마이크로프로세서, GPU, SoC |
디지털 논리계열 | 응용 분야 | 대표회로 |
---|---|---|
TTL(Transistor-Transistor Logic) | 초기 디지털 컴퓨터 | NAND 게이트 |
ECL(Emitter-Coupled Logic) | 고속 통신 시스템 | NOR 게이트 |
NMOS(N-channel Metal-Oxide-Semiconductor) | 초기 마이크로프로세서 | NAND 게이트 |
CMOS(Complementary Metal-Oxide-Semiconductor) | 현대 마이크로프로세서 | 인버터 |
보수(complement): 보충해 주는 수
- 주어진 숫자가 특정 기준 값에서 얼마나 떨어져 있는지를 나타내는 값
- 10진수 7에 대한 10의 보수는 3 -> 10-7
- 10진수 70에 대한 10의 보수는 30 -> 100-70
- 기수가 r인 수 체계에서는 진보수인 r의 보수와 (r-1)의 보수가 존재함
r의 보수
- N에 대한 r의 보수 정수 부분이 n자리라면
-
- 2진수 110111의 2의 보수는
- 총 6자리 따라서
r-1의 보수
- N에 대한 (r-1)의 보수 정수 부분이 n자리라면
-
- 2진수 110111의 2의 보수는 6자리니까 그냥 111111에서 N을 빼주니 1->0, 0->1한 결과
- 10진수 83의 9의 보수는 99-83=16
- r-1의 보수가 유용한 점은 r의 보수를 구하기 쉬운 버전이라는 점이다. 자리올림 내림 고려할 필요없이 각 자리에서 올 수 있는 가장 큰수에서 해당 숫자를 빼면 되기 때문.
r의 보수와 r-1의 보수의 관계
- r-1의 보수에서 +1을 한게 r의 보수이다. 즉 r의 보수를 구하기 쉬운 방법이다. 앞으로 항상 r-1의 보수에서 +1을 해서 구하도록 하자!
보수의 쓰임새
- 컴퓨터는 가산기만으로 모든 연산을 처리해야한다. 따라서 뺄셈을 보수로 바꾸어 더한뒤에 자리올림을 버리는 형태로 뺄셈을 구현한다.
- 10진수 156-5
- 항상 가장 자리수가 많은 수보다 한자리가 무조건 늘어나게 되므로 그냥 버려주면 된다. Why? 보수의 정의가 n자리수의 보수는 이 되기 위한 보충하는 수이므로...
- 실제 보수를 이용한 감산 연산 원리
- 156-5 -> 156 - 005 -> 156 + 994 -> 1150 -> 1150+1 -> 1151 -> 151
문자 숫자 코드