양자화[ quantization , 量子化 ]
아날로그양, 즉 단절 없이 연속된 변화량을 일정한 폭 ∆로 불연속적으로 변화하는 유한 개의 레벨로 구분하고, 각 레벨에 대하여 각각 유니크한 값을 부여하는 것. 어떤 특정한 레벨에 속하는 폭 ∆의 범위 내의 모든 아날로그양은 그 레벨에 부여된 특정값으로 대치할 수 있다. 예를 들면, 1.5∼2.5 범위의 모든 아날로그양에는 2라는 값이 주어진다.
도표화[ mapping ]
「지도를 만들다」라는 뜻이지만 일반적으로 메모리 맵(memory map)을 제작하는 것을 말한다. 또 사상에는 수학적인 「사상하다」라는 의미도 있으며, 이것으로부터 코드 변환(code conversion)이나 어드레스 변환(address conversion) 등도 생각할 수 있다. 컴퓨터에서는 기억 장치의 사용 방법의 배분을 결정하는 것. 어셈블리 언어로 프로그래밍할 때는 사용자 프로그램으로 행하는 것이 많지만, 운영 체제 관리하에서 컴파일러 언어로 프로그래밍할 때는 시스템 프로그램이 작업을 대행하고 결과를 리스트해서 알려준다. 그 외에도 운영 체제가 스스로 관리하고 있다. 메모리 내에서 프로그램이나 스택(stack), 인터럽트 테이블 등을 할당하는 것이다. 유연성 디스크(flexible disk)에 파일을 판독할 때에 디스크 할당 테이블(disk allocation table)을 대응시키면서 그 위치를 결정하는 것을 나타낸다. 특히 실제로 컴퓨터를 사용하여 지도 데이터를 작성하는 일 또는 지도 데이터를 컴퓨터에 입력하는 과정을 말하거나 롤 플레잉 게임(role playing game) 등의 배경이 되는 미로나 지도를 플레이어(player)가 작성하는 것도 사상이라고 한다.
MCU(Micro Controller Unit)
특정 시스템을 제어하기 위한 전용 프로세서.
MCU는 대부분의 전자제품에 채용돼 전자제품의 두뇌역할을 하는 핵심칩으로 단순 시간예약에서부터 특수한 기능에 이르기까지 제품의 다양한 특성을 컨트롤하는 역할을 하는 비메모리 반도체(시스템 반도체)이다 .
특히 반도체칩 내에 특정 목적의 기능을 수행하는 소프트웨어를 이식해 다양한 기능을 발휘할 수 있도록 한다.
MCU는 롬(ROM)과 램(RAM) 회로까지 내장, 사실상 초소형컴퓨터의 역할을 하고있어 '원칩(One Chip) 컴퓨터' 또는 '마이콤'으로 불리우기도 한다.
CPU(central processing unit 중앙 처리 장치)
ALU( Arithmetic and Logic Unit) 중앙처리장치 속에서 연산을 하는 부분을 ALU라고 한다.
RTC(real-time clock 실시간 클록) 프로그램에 의하여 설정된 시각이 되면 인터럽트(interrupt)를 일으키는 기능. 컴퓨터에 공급되는 주기성을 가진 신호이다. 이 신호에 따라 어떤 사상(事象)과 다른 사상 간의 경과 시간을 측정하는 것이 가능하고 또 해당 시각이 되면 일정한 처리를 실행하기 위한 시각을 나타낸다.
CRC(cyclic redundancy check 순환 중복 검사) 데이터 전송에서의 검사 방식의 하나이며, 블록(block) 혹은 프레임(frame)마다에 여유 부호를 붙여 전송하고, 그것에 따라서 전송 내용이 정확했는지의 여부를 조사하는 방법. 순환 여유 검사(CRC) 방식은 시간적으로 나뉘어져 발생하는 연속적인 오류(버스트 오류)에 대해서 효과가 있다.
CISC(complex instruction set computer)
CPU는 컴퓨터 시스템의 핵심 부분으로서 각종 연산을 수행하며 기억장치에 저장된 명령을 읽어서 수행하는 역할을 한다. 초기의 컴퓨터는 하드웨어를 최소화하기 위해 작고 간단한 명령어 집합을 사용하였다. 이후 고급 언어를 사용하면서. 기계어로의 번역 과정을 단순화하면서 전반적인 성능을 향상시키는 과정에서 명령어 집합이 복잡해졌다.
CISC는 마이크로프로그래밍을 통해 고급 언어에 각기 하나씩의 기계어를 대응시킴으로써 명령어 집합이 커지고, 가변 길이의 다양한 명령어를 가진다. 그러나 주로 쓰이는 명령어는 일부에 불과하고, 구조가 복잡하므로 가격이 비싸고 전력소모도 크다는 단점이 있다.
따라서 자주 쓰이지 않는 명령어들은 소프트웨어로 구현하고 자주 쓰이는 명령어만 간략화하여 CPU의 성능을 높인 RISC(reduced instruction set computer)가 고안되었다. 펜티엄을 포함한 인텔 계열의 모든 프로세서는 CISC 프로세서이다. RISC 프로세서는 IBM의 System/6000 기종과 매킨토시 컴퓨터에 사용되고 있다.
RISC(reduced instruction set compute)
CPU(중앙처리장치) 안의 명령어를 최소로 줄여 단순하게 만든 프로세서
범용 마이크로프로세서를 구성하는 요소에는 명령세트ㆍ레지스터ㆍ메모리 공간 등이 있는데, 이 중 명령세트는 RISC(reduced instruction set compute)와 CISC(complex instruction set computer)의 2가지로 크게 분류할 수 있다. 1970년대에 등장한 RISC 방식은 최신 프로세서의 핵심 기술로, CPU에서 수행하는 모든 동작의 대부분이 몇 개의 명령어만으로 가능하다는 사실을 전제로 하고 있다.
RISC는 명령어가 전부 1워드(word) 길이로 짧고 파이프라인(pipeline)과 슈퍼 스칼라(super scalar)를 통해서 멀티태스킹이 가능하므로 CISC에 비해서 많은 레지스터를 가지고 있다. RISC는 CISC의 길고 복잡한 명령어 설계를 가져다 짧고, 처리가 빠른 여러 개의 명령어로 바꾸었다. 규모가 방대하고 복잡한 작업을 수행할 경우 수천~수만 가지의 명령어를 다거치지 않고 실제로 사용되는 핵심 명령어만 따로 뽑아 사용하면 작업 속도가 훨씬 빨라진다.
RISC CPU는 고정된 길이의 명령어를 사용하고 명령어의 종류가 미리 정해져 있으므로 해석 속도가 빠르고 여러 개의 명령어를 처리하기에 적합하다는 것이 장점이다. 그러나 처리 비트 단위가 변하거나 CPU의 구조가 조금만 바뀌어도 하위 프로세서와의 호환성이 떨어지기 때문에 문제가 발생한다. 따라서 단지 고성능의 대용량 데이터 처리가 필요하고 소프트웨어 활용이 비교적 고정되어 있는 워크스테이션을 중심으로 해서 많이 사용되고 있다.
VLIW(very long instruction word)
크루소는 VLIW(very long instruction word) 기술을 적용하였다. 대부분의 명령어 처리를 하드웨어가 담당하는 RISC(reduced instruction set computer:축소명령형 컴퓨터)와 달리 VLIW는 명령어를 소프트웨어가 처리함으로써 프로세서의 복잡성을 줄이고 명령수행을 더 빠르게 한다.
폰 노이만 구조(von Neumann architecture)
폰 노이만 구조는 주기억 장치, 중앙 처리 장치, 입출력 장치의 전형적인 3단계 구조로 이루어진 프로그램 내장형 컴퓨터 구조로, 오늘날 사용하고 있는 대부분의 컴퓨터의 기본 구조를 나타낸다. 그러나 나열된 명령을 순차적으로 수행하고, 그 명령은 일정한 기억 장소의 값을 변경하는 작업으로 구성되는 폰 노이만 구조는 고속 컴퓨터의 설계에서 심각한 문제를 일으키게 되는데, 이것을 폰 노이만 병목(von-Neumann bottleneck)현상이라고 한다.
하버드 구조(Harvard architecture)
하바드아키텍쳐는 기본적으로 데이타와 명령어 접근을 동시에 함으로써 성능을 향상시키는 것입니다. 이를 위해서는 데이터 메모리와 명령어(코드)메모리가 분리 되어야 하는데, 대부분의 프로세서는 캐쉬를 I-Cache, D-Cache로 분리해 동시에 접근이 가능하게 하고 있습니다. 현존하는 거의 대부분의 고성능 프로세서는 하바드아키텍쳐를 사용하고 있지요. 마이컴이나 캐쉬가 없는 프로세서들은 그냥 폰노이만 구조를 쓰는데 ARM7 이하가 이에 해당됩니다.
MIPS(million instructions per second)
컴퓨터의 성능을 나타내는 지표가 된다. 어떤 처리장치(processor)의 처리속도가 18.5MIPS라면 1초 동안에 1,850만 개의 명령을 실행할 수 있다는 의미이다. 컴퓨터의 성능을 평가하는 정량적인 평가 단위의 하나로, 단위시간에 처리할 수 있는 명령어수로 나타내는 단위에는 MIPS와 FLOPS가 있다. MIPS는 명령어의 종류에 관계없이 1초당 실행되는 명령어 수만 계산하기 때문에 명령어별 특성을 고려하지 않아 그 신뢰성에 의문이 있을 수 있다. 이에 반해 FLOPS는 부동 소수점 명령어가 1초에 몇번 실행될 수 있는가를 나타내는 단위이다. 슈퍼컴퓨터에서는 MIPS보다 FLOPS를 연산속도의 단위로 사용한다.
FLOPS(floating-point operations per second)
컴퓨터의 성능 향상, 성능 비교, 연산속도 측정, 성능 예측, 기대하는 바에 대한 성능 달성 여부의 검증, 시스템의 조율(tune up) 등에 대한 평가에 사용되는 평가항목에는 정량적 평가항목과 정성적 평가항목이 있다. 단위 시간당 처리량(through-put)·응답시간·명령 믹스(mix)·벤치마크(benchmark) 등은 정량적 평가항목이고, 시스템의 신뢰성·보수성·확장성·편리성 등은 추상적이고 감각적인 정성적 평가항목이다.
이들 평가 방법 중에서 프로그램을 실행할 때의 명령어 실행 빈도를 명령 믹스라고 하는데, 그 실행 빈도를 성능의 척도로 하였을 때 평가기준 단위에는 FLOPS와 MIPS(million instructions per second)가 있다.
MIPS는 1백만회를 단위로 한 1초당 명령실행 횟수를 나타내며, FLOPS는 1초당 부동 소수점 연산(곱셈)의 명령 실행 횟수를 나타내는 단위이다. 그러나 MIPS값은 명령의 기능별 수준을 반영하지 않기 때문에 그 평가치를 신뢰하지 않는 경향도 있다. 범용 슈퍼컴퓨터에서는 성능향상을 위해 명령 실행상의 여러 단계들을 병렬로 다중처리함으로써 처리속도를 초고속화하기 때문에, MIPS 대신 매초당 부동 소수점 연산의 명령 실행 횟수인 FLOPS를 연산속도의 단위로 사용한다.
ROM(Read Only Memory)
랜덤 액세스 메모리가 기억정보의 기입과 읽어내기가 자유로운데 대하여 정보를 읽어내기는 자유롭지만 일단 정보를 기록해 넣은 것을 바꾸기는 불가능할 뿐더러 시간이 걸린다. 다른 반도체 메모리와는 달리 전원을 절단시켜도 기억정보가 소실되지 않는 메모리이다. 문자 패턴 발생용과 고정 프로그램 기억용 등 기억내용이 고정되어서 변경할 필요가 없을 경우에 사용된다. ROM은 정보를 기록해 넣음과 기록한 것을 바꾸는 방법에 의하여 다음의 4종류로 분류된다.
(1) 마스크 프로그래머블 ROM(Mask Programmable ROM)
(2) 필드 프로그래머블 ROM(Field Programmable ROM)
① PROM(Programmable ROM)
② EPROM(Erasable Programmable ROM)
③ EAROM(Electrically Alterable ROM)
마스크 프로그래머블 ROM은 줄여서 마스크 ROM이라고 부르는데 제조공정에서 사용하는 마스크 패턴을 변경함으로써 정보를 기록해 넣기 때문에 유저(user)가 직접 정보를 써넣을 수 없고 기억정보의 변경이 불가능하다. 그러나 구조가 간단하고 집적도와 신뢰성이 높아서 대량 생산을 하는 경우에는 가장 경제적이다. 필드 프로그래머블 ROM은 유저가 전기적으로 직접 정보를 기입해 넣을 수 있기 때문에 마스크 ROM에 비하여 융통성이 있고 소량 다품종인 것에 바람직하지만 집적도와 신뢰성의 점에서는 떨어진다.
PROM은 정보의 기록은 1번밖에 되지 않지만 필드 프로그래머블 ROM 중에서는 경제성과 신뢰성이 가장 높다. EPROM은 FAMOS 등을 사용하여 정보를 기억시키며, 정보의 변경이 가능하다. 그러나 기억정보의 소거(消去)는 전기적으로 되지 않고 자외선 등 특수한 장치를 사용하여 소거하며 변경 횟수도 103회 이하이다. EAROM은 MNOS 등을 사용하여 정보를 기억시키며 EPROM과 비교하여 전기적으로 변경이 가능하고 변경 횟수도 106 정도까지 가능하다. 필드 프로그래머블 ROM 전체를 PROM이라고 부를 경우도 있다.
RAM(random access memory)
RAM(Random Access Memory)은 기억된 정보를 읽어내기도 하고 다른 정보를 기억시킬 수도 있는 메모리로서, 컴퓨터의 주기억장치, 응용 프로그램의 일시적 로딩(loading), 데이터의 일시적 저장 등에 사용된다.
메모리는 크게 램(RAM)과 롬(ROM)으로 나뉜다. RAM은 기억된 정보를 읽어내기도 하고 다른 정보를 기억시킬 수 있는 메모리이다. 'Random Access Memory'의 약자로 전원이 끊어지면 휘발유처럼 기록된 정보도 날아가기 때문에 휘발성 메모리(Volatile Memory)라고 한다. 따라서 RAM은 컴퓨터의 주기억장치, 응용 프로그램의 일시적 로딩(loading), 데이터의 일시적 저장 등에 사용된다. 기존의 자기를 이용한 자기 코어와 달리 TR(트랜지스터)를 집적한 IC를 이용하여 기억소자로 사용하고 읽을 때 순차적이 아닌 랜덤하게 읽을 수 있기 때문에 읽기 또는 쓰기 속도가 매우 빠르다. 기록과 해독의 두 회로가 있어서 정보의 기록, 해독이 가능하고 컴퓨터나 주변 단말기기의 기억장치에 널리 쓰인다. 대표적인 RAM의 종류에는 DRAM, SRAM이 있다.
D(Dynamic)램은 전원이 차단될 경우 저장되어 있는 자료가 소멸되는 특성이 있는 휘발성 기억소자이며, 시간이 지나가면 축적된 전하가 감소되기 때문에 전원이 차단되지 않더라도 저장된 자료가 자연히 소멸되는 단점이 있다. 따라서 지속적으로 재기록할 수 있고 저장용량이 커서 PC의 주요 메모리로 쓰인다. 256메가D램 제품의 경우 데이터 저장용량은 신문지 2100장, 원고지로 따지면 8만4000장에 달한다. 얼마 전까지 일반 S(Synchronous)D램이 주로 쓰였는데 요즘에는 PC업체들이 이 제품보다 데이터 처리 속도가 2배 더 빠른 DDR(더블데이터레이트) SD램을 주기억장치로 채택하고 있다.
S(Static)램은 전원이 공급되는 한 기억된 데이터가 지워지지 않는다. 플립플롭 방식의 메모리 셀을 가진 임의 접근 기억장치로서 전원 공급이 계속되는 한 저장된 내용을 계속 기억하며, 복잡한 재생 클록(refresh clock)이 필요 없기 때문에 소용량의 메모리나 캐시메모리에 주로 사용된다. 소비전력이 적고 D램에 비해 정보처리속도가 6배나 빨라 주로 PC의 수치계산 용도로 이용된다. 교환기의 메모리로도 활용된다.
FPGA(Field Programmable Gate Array) vs. CPLD(Complex Programmable Logic Device)
Are FPGAs and CPLDs the same thing? No
Both are programmable digital logic chips. Both are made by the same companies. But they have different characteristics.
FPGAs are "fine-grain" devices. That means that they contain a lot (up to 100000) of tiny blocks of logic with flip-flops. CPLDs are "coarse-grain" devices. They contain relatively few (a few 100's max) large blocks of logic with flip-flops.
FPGAs are RAM based. They need to be "downloaded" (configured) at each power-up. CPLDs are EEPROM based. They are active at power-up (i.e. as long as they've been programmed at least once...).
CPLDs have a faster input-to-output timings than FPGAs (because of their coarse-grain architecture, one block of logic can hold a big equation), so are better suited for microprocessor decoding logic for example than FPGAs.
FPGAs have special routing resources to implement efficiently binary counters and arithmetic functions (adders, comparators...) and RAM. CPLDs do not.
FPGAs can contain very large digital designs, while CPLDs can contain small designs only.