shopkeeper/kowiki-cleaned-020126 huggingface dataset:
프로세서 선호도

컴퓨터 과학에서 프로세서 선호도(processor affinity)는 CPU 피닝(CPU pinning) 또는 캐시 선호도(cache affinity)라고도 불리며, 프로세스 또는 스레드를 특정 CPU 또는 CPU 범위에 바인딩(binding) 및 언바인딩(unbinding)하여, 해당 프로세스 또는 스레드가 다른 어떤 CPU가 아닌 지정된 CPU에서만 실행되도록 하는 기능이다. 이는 대칭형 다중 처리 운영 체제의 기본 중앙 큐 스케줄링 알고리즘을 수정한 것으로 볼 수 있다. 큐의 각 항목에는 관련 프로세서를 나타내는 태그가 있다. 자원 할당 시 각 작업은 다른 프로세서보다 관련 프로세서에 우선적으로 할당된다.

프로세서 선호도는 특정 프로세서에서 실행되었던 프로세스의 잔여물(예: CPU 캐시의 데이터)이 다른 프로세서가 실행된 후에도 해당 프로세서의 상태에 남아 있을 수 있다는 사실을 활용한다. 인터럽트가 적은 CPU 집약적 프로세스를 동일한 프로세서에서 실행하도록 스케줄링하면 캐시 미스와 같은 성능 저하 이벤트를 줄여 성능을 향상시킬 수 있지만, 일반 프로그램은 해당 CPU가 다시 사용 가능해질 때까지 기다려야 하므로 속도가 느려질 수 있다. 프로세서 선호도의 실용적인 예는 일부 그래픽 렌더링 소프트웨어와 같이 스레드를 사용하지 않는 애플리케이션의 여러 인스턴스를 실행하는 것이다.

스케줄링 알고리즘 구현은 프로세서 선호도에 대한 준수 여부가 다양하다. 특정 상황에서 일부 구현은 효율성이 높아진다면 작업이 다른 프로세서로 변경되는 것을 허용한다. 예를 들어, 두 개의 프로세서 집약적 작업(A와 B)이 하나의 프로세서에 선호도를 가지고 있고 다른 프로세서가 사용되지 않는 경우, 많은 스케줄러는 프로세서 사용을 극대화하기 위해 작업 B를 두 번째 프로세서로 옮길 것이다. 그러면 작업 B는 두 번째 프로세서에 대한 선호도를 얻게 되고, 작업 A는 원래 프로세서에 대한 선호도를 계속 유지하게 된다.

사용법
프로세서 선호도는 캐시 문제를 효과적으로 줄일 수 있지만, 지속적인 부하분산 문제를 줄이지는 못한다. 또한 비균일 아키텍처를 가진 시스템에서는 프로세서 선호도가 더 복잡해진다는 점을 명심해야 한다. 예를 들어, 두 개의 듀얼 코어 하이퍼스레드 CPU를 가진 시스템은 스케줄링 알고리즘에 어려움을 준다.

하이퍼스레딩을 통해 동일한 코어에 구현된 두 가상 CPU 사이에는 완전한 선호도가 존재하고, 동일한 물리적 프로세서 내의 두 코어 사이에는 부분적인 선호도(코어들이 일부 캐시를 공유하지만 전부는 아님)가 존재하며, 별개의 물리적 프로세서 사이에는 선호도가 존재하지 않는다. 다른 자원들도 공유되기 때문에 프로세서 선호도만으로 CPU 디스패치의 근거로 사용될 수는 없다. 만약 프로세스가 주어진 코어 내의 한 가상 하이퍼스레드 CPU에서 최근에 실행되었고, 그 가상 CPU가 현재 사용 중이지만 그 파트너 CPU가 사용 가능할 경우, 캐시 선호도는 해당 프로세스가 유휴 파트너 CPU로 디스패치되어야 한다고 제안할 것이다. 그러나 두 가상 CPU는 사실상 모든 컴퓨팅, 캐시, 메모리 자원을 놓고 경쟁한다. 이러한 상황에서는 사용 가능한 다른 코어나 CPU로 프로세스를 디스패치하는 것이 일반적으로 더 효율적일 수 있다. 이 경우 프로세스가 캐시를 다시 채울 때 페널티가 발생할 수 있지만, 프로세스가 CPU 내에서 자원 경쟁을 할 필요가 없으므로 전반적인 성능은 더 높아질 수 있다.

특정 운영 체제
리눅스에서는 taskset(1) 프로그램과 sched_setaffinity(2) 시스템 호출을 사용하여 프로세스의 CPU 선호도를 변경할 수 있다. 스레드의 선호도는 pthread_setaffinity_np(3) 또는 pthread_attr_setaffinity_np(3) 라이브러리 함수 중 하나를 사용하여 변경할 수 있다.

SGI 시스템에서 dplace는 프로세스를 CPU 세트에 바인딩한다.

DragonFly BSD 1.9 (2007년) 및 이후 버전에서는 usched_set 시스템 호출을 사용하여 프로세스의 선호도를 제어할 수 있다. NetBSD 5.0, FreeBSD 7.2, DragonFly BSD 4.7 및 이후 버전에서는 pthread_setaffinity_np와 pthread_getaffinity_np를 사용할 수 있다. NetBSD에서는 psrset 유틸리티를 사용하여 스레드의 선호도를 특정 CPU 세트로 설정한다. FreeBSD에서는 cpuset 유틸리티를 사용하여 CPU 세트를 생성하고 프로세스를 이 세트에 할당한다. DragonFly BSD 3.1 (2012년) 및 이후 버전에서는 usched 유틸리티를 사용하여 프로세스를 특정 CPU 세트에 할당할 수 있다.

윈도우 NT 및 그 후속 버전에서는 SetThreadAffinityMask 및 SetProcessAffinityMask API 호출 또는 작업 관리자 인터페이스(프로세스 선호도에만 해당)를 통해 스레드 및 프로세스 CPU 선호도를 개별적으로 설정할 수 있다.

MacOS는 선호도 API를 노출하여 커널에 선호도 세트에 따라 스레드를 스케줄링하는 방법에 대한 힌트를 제공한다.

솔라리스에서는 pbind(1) 프로그램을 사용하여 프로세스 및 LWP의 프로세서 바인딩을 제어할 수 있다. 프로그래밍 방식으로 선호도를 제어하려면 processor_bind(2)를 사용할 수 있다. 프로세서 세트 및 지역성 그룹 개념을 사용하는 pset_bind(2) 또는 lgrp_affinity_get(3LGRP)와 같은 더 일반적인 인터페이스도 있다.

AIX에서는 bindprocessor 명령과 bindprocessor API를 사용하여 프로세스 바인딩을 제어할 수 있다.

 같이 보기 
 선호도 마스크

 각주 

분류:프로세서 스케줄링 알고리즘
분류:부하분산
네이티브 POSIX 스레드 라이브러리

네이티브 POSIX 스레드 라이브러리(Native POSIX Thread Library, NPTL)는 리눅스 운영 체제를 위한 POSIX 스레드 사양의 구현체이다.

역사
리눅스 커널 2.6 버전 이전에는 프로세스가 스케줄링 가능한 엔터티였으며, 스레드를 위한 특별한 기능은 없었다.
그러나 호출 프로세스의 주소 공간을 공유하는 복사본을 생성하는 이라는 시스템 호출이 있었다. 리눅스 스레드 프로젝트는 이 시스템 호출을 사용하여 커널 수준 스레드를 제공했다(리눅스의 이전 스레드 구현 대부분은 완전히 사용자 영역에서 작동했다). 불행히도, 신호 처리, 스케줄링, 프로세스 간 동기화 프리미티브 영역에서 POSIX를 부분적으로만 준수했다.

리눅스 스레드를 개선하기 위해서는 일부 커널 지원과 새로운 스레딩 라이브러리가 필요하다는 것이 분명해졌다. 이 요구 사항을 해결하기 위해 두 가지 경쟁 프로젝트가 시작되었다: IBM의 개발자를 포함한 팀이 작업한 NGPT(차세대 POSIX 스레드)와 레드햇의 개발자가 작업한 NPTL이다. NGPT 팀은 NPTL 팀과 긴밀히 협력하여 두 구현의 최상의 기능을 NPTL에 통합했다. NGPT 프로젝트는 2003년 중반에 최상의 기능을 NPTL에 병합한 후 중단되었다.

NPTL은 레드햇 리눅스 9에서 처음 출시되었다. 구식 리눅스 POSIX 스레딩은 시스템에 양보하기를 거부하는 스레드에 문제가 있는 것으로 알려져 있었는데, 이는 당시 윈도우가 더 잘하는 것으로 알려진 선점 기회를 잡지 못했기 때문이다. 레드햇은 자바 웹사이트의 레드햇 리눅스 9의 자바에 대한 기사에서 NPTL이 이 문제를 해결했다고 주장했다.

NPTL은 버전 3부터 레드햇 엔터프라이즈 리눅스의 일부였으며, 리눅스 커널 2.6 버전부터 포함되었다. 현재는 GNU C 라이브러리의 완전히 통합된 부분이다.

NPTL을 위한 추적 도구인 POSIX Thread Trace Tool(PTT)이 존재한다. 그리고 POSIX 표준에 대해 NPTL 라이브러리를 테스트하기 위해 Open POSIX Test Suite(OPTS)가 작성되었다.

설계
리눅스 스레드와 마찬가지로 NPTL은 1:1 스레드 라이브러리이다. 라이브러리(pthread_create를 통해)에 의해 생성된 스레드는 커널의 스케줄링 가능한 엔터티(리눅스의 경우 프로세스)와 일대일로 대응한다. 이는 세 가지 스레딩 모델(1:1, N:1, 및 M:N) 중 가장 간단한 모델이다. 새 스레드는 NPTL 라이브러리를 통해 호출되는 clone() 시스템 호출로 생성된다. NPTL은 사용자 공간 잠금을 보다 효율적으로 구현하기 위해 futex에 대한 커널 지원에 의존한다.

 같이 보기 

 리눅스 스레드
 라이브러리 (컴퓨터 과학)
 그린 스레드

 각주 

 외부 링크 
 NPTL 추적 도구 NPTL을 사용하여 다중 스레드 응용 프로그램을 추적하고 디버깅하는 오픈 소스 도구.

분류:리눅스 커널
분류:C POSIX 라이브러리
분류:스레드
심 (컴퓨팅)

섬네일|TI 듀카티 반도체 IP 코어는 비디오 가속 및 가속 이미지 처리를 수행한다. 계산을 수행하는 실제 IC는 두 Cortex-M3 마이크로컨트롤러에서 실행되는 소프트웨어에 의해 제어된다. 운영 체제(호스트 CPU에서 실행)는 하위 시스템과 인터페이스하기 위한 심만 필요하다.

컴퓨터 프로그래밍에서 심(shim)은 투명하게 API 호출을 가로채고 전달된 인수를 변경하거나, 작업을 직접 처리하거나, 다른 곳으로 작업을 리디렉션하는 라이브러리이다. 심은 최신 환경에서 이전 API를 지원하거나, 이전 환경에서 새로운 API를 지원하는 데 사용될 수 있다. 심은 또한 개발된 소프트웨어 플랫폼과 다른 소프트웨어 플랫폼에서 프로그램을 실행하는 데 사용될 수도 있다.

이전 API용 심은 일반적으로 API의 동작이 변경되어 이전 기능에 여전히 의존하는 이전 응용 프로그램에 호환성 문제가 발생하는 경우에 만들어진다. 이러한 경우, 이전 API는 새로운 코드 위에 얇은 호환성 계층을 통해 계속 지원될 수 있다. 새로운 API용 심은 "이전 환경의 수단만을 사용하여 새로운 API를 이전 환경으로 가져오는 라이브러리"로 정의된다.

 예시 
 웹 폴리필은 주어진 웹 브라우저에서 새로운 웹 표준을 사용할 수 없는 경우, 이전 표준과 자바스크립트를 사용하여 새로운 웹 표준을 구현한다.
 애플 컴퓨터가 오픈 트랜스포트 네트워킹 시스템을 지원했던 짧은 기간 동안 매킨토시 컴퓨터에서 애플토크를 지원했던 경우. 수천 개의 맥 프로그램이 애플토크 프로토콜을 기반으로 했다. 이 프로그램들을 지원하기 위해 애플토크는 오픈트랜스포트 "스택"으로 재구현되었고, 이후 이 새로운 라이브러리 위에 API 심으로 재구현되었다.
 마이크로소프트 윈도우 응용 프로그램 호환성 도구 키트(ACT)는 이 용어를 하위 호환 라이브러리를 의미하는 데 사용한다. 심은 잘못되거나 더 이상 사용되지 않는 기능에 의존하는 레거시 응용 프로그램에 대해 이전 버전의 윈도우 동작을 시뮬레이션하거나, 잘못 작성된 응용 프로그램이 변경되지 않은 API를 호출하는 방식을 수정하여, 예를 들어 최소 권한 사용자 계정(LUA) 버그를 수정한다.
 bind.so는 권한에 관계없이 모든 응용 프로그램이 수신 소켓에 바인딩하거나 나가는 IP 주소를 지정할 수 있게 하는 리눅스용 심 라이브러리이다. 이는 심 및 기타 라이브러리가 모든 프로그램에 로드될 수 있도록 하는 LD_PRELOAD 메커니즘을 사용한다.
 타입 터널 패턴에서 일반 인터페이스 계층은 심의 집합을 사용하여 이질적인 타입 집합을 기본 API에서 사용되는 단일 원시 타입으로 변환한다.

 같이 보기 
 어댑터 패턴
 응용 프로그램 가상화
 드라이버 래퍼
 글라이드 래퍼
 글루 코드
 스텁 (컴퓨터 과학)
 성크 (호환성 매핑)
 윈도우 온 윈도우 (WoW)
 래퍼 함수
 래퍼 라이브러리

 각주 

 외부 링크 
 Microsoft Dev-Center - Windows 8 Client and Server 2012 application Compatibility
 Microsoft TechNet - Understanding Shims

분류:API
분류:호환성 계층
에리히 감마

에리히 감마(Erich Gamma)는 스위스의 컴퓨터 과학자이자 소프트웨어 공학 교과서인 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software)의 네 명의 공동 저자("갱 오브 포"로 불림) 중 한 명이다.

감마는 켄트 벡과 함께 JUnit 소프트웨어 테스트 프레임워크를 공동으로 작성하여 테스트 주도 개발을 창출하는 데 기여했으며, 전체 소프트웨어 산업에 영향을 미쳤다. 이클립스 플랫폼의 자바 개발 도구(JDT)의 개발팀 리더였으며 IBM 래셔널 재즈 프로젝트에서 일했다.

2011년 그는 마이크로소프트 비주얼 스튜디오 팀에 합류하여 스위스 취리히에 있는 개발 연구소를 이끌고 있다. 이 연구소는 애저 데브옵스 서비스(Azure DevOps Services, 구 Visual Studio Team Services 및 Visual Studio Online), 비주얼 스튜디오 코드, Azure Mobile Services, Azure Web Sites, Office 365 개발 도구와 같은 제품에서 볼 수 있는 브라우저 기반 개발용 "모나코" 구성 요소 제품군을 개발했다.

 각주 

 외부 링크 
 GitHub 계정
 

분류:스위스의 작가
분류:IBM의 직원
분류:살아있는 사람
분류:Eclipse (소프트웨어)
Cooperative Linux

Cooperative Linux는 coLinux로 줄여 부르며, 마이크로소프트 윈도우와 리눅스 커널이 동일한 기계에서 동시에 병렬로 실행될 수 있도록 하는 소프트웨어이다.

Cooperative Linux는 협력 가상 머신(CVM)의 개념을 활용한다. 기존의 가상 머신과 달리 CVM은 호스트 OS에 이미 존재하는 자원을 공유한다. 기존 VM 호스트에서는 모든 (게스트) OS에 대해 자원이 가상화된다. CVM은 두 OS 모두에게 호스트 머신에 대한 완전한 제어권을 부여하는 반면, 기존 VM은 모든 게스트 OS를 실제 머신에 접근할 수 없는 비특권 상태로 설정한다.

 개요 
섬네일|left|윈도우에서 실행 중인 시냅틱 및 노틸러스
"협력적"이라는 용어는 병렬로 작동하는 두 엔티티를 설명하는 데 사용된다. 실제로 Cooperative Linux는 두 개의 다른 운영 체제 커널을 두 개의 큰 코루틴으로 변환한다. 각 커널은 자체적인 완전한 CPU 컨텍스트와 주소 공간을 가지며, 각 커널은 파트너에게 언제 제어권을 돌려줄지 결정한다.

그러나 두 커널이 이론적으로 실제 하드웨어에 대한 완전한 접근 권한을 가지고 있지만, 최신 PC 하드웨어는 두 개의 다른 운영 체제에 의해 동시에 제어되도록 설계되지 않았다. 따라서 호스트 커널은 실제 하드웨어 제어권을 유지하고 게스트 커널은 호스트와 통신하고 게스트 OS에 다양한 중요한 장치를 제공하는 특수 드라이버를 포함한다. 호스트는 Cooperative Linux 이식 가능한 드라이버가 CPL0 모드 (링 0)에서 실행되고 메모리를 할당할 수 있도록 기본 프리미티브를 내보내는 모든 OS 커널이 될 수 있다.

 역사 
댄 알로니는 사용자 모드 리눅스와의 유사한 작업을 기반으로 한 연구 프로젝트로 Cooperative Linux 개발을 시작했다. 그는 2004년 1월 25일에 개발을 발표했다. 2004년 7월에 그는 리눅스 심포지엄에서 논문을 발표했다. 소스는 GNU 일반 공중 사용 허가서로 출시되었다. 그 이후로 다른 개발자들이 소프트웨어에 다양한 패치와 추가 기능을 기여했다.

 비교 
Cooperative Linux는 일반적으로 게스트 OS를 호스트 커널보다 낮은 권한 모드로 실행하고, 모든 자원을 호스트 커널에 위임하는 완전한 X86 가상화와는 상당히 다르다. 이와 대조적으로 Cooperative Linux는 특별히 수정된 리눅스 커널을 실행하는데, 이 커널은 NT 커널과 자원을 공유하고 경쟁 상태를 유발하지 않는다는 점에서 협력적이다.

 배포 

섬네일|right|coLinux로 실행되는 우분투
섬네일|right|200px|coLinux로 실행되는 speedLinux

Cooperative Linux 패치의 대부분의 변경 사항은 i386 트리에 있다. 이는 이 글을 쓰는 시점에서 Cooperative가 지원하는 유일한 아키텍처이다. 다른 변경 사항은 주로 가상 드라이버의 추가이다: cobd(블록 장치), conet(네트워크), cocon(콘솔). i386 트리의 대부분 변경 사항은 초기화 및 설정 코드와 관련이 있다. Cooperative Linux 커널 설계의 목표는 독립형 i386 커널에 최대한 가깝게 유지하는 것이므로, 모든 변경 사항은 가능한 한 지역화되고 최소화된다.

coLinux 패키지는 리눅스 커널의 포트와 가상 네트워크 장치를 설치하며, 윈도우 2000 또는 윈도우 XP와 같은 윈도우 운영 체제 버전에서 동시에 실행될 수 있다. VM웨어와 같은 가상 머신을 사용하지 않는다.

데비안, 우분투, 페도라, 젠투는 coLinux 사용자들에게 특히 인기가 많다.

가상 하드웨어의 다소 특이한 구조 때문에 coLinux에서 리눅스 배포판을 설치하는 것은 일반적으로 어렵다. 따라서 대부분의 경우 사용자는 실제 파티션에 있는 기존 리눅스 설치를 사용하거나, 프로젝트에서 배포하는 미리 만들어진 파일 시스템 이미지를 사용한다. 파일 시스템 이미지는 일반 리눅스 시스템의 이미지를 찍거나, 이상한 하드웨어에서 설치 프로그램을 실행할 방법을 찾거나, 패키지 관리자를 사용하여 수동으로 설치를 구축하거나, 단순히 yum 및 apt와 같은 도구를 사용하여 기존 이미지를 업그레이드하는 등 다양한 방법으로 만들어진다. 최신 파일 시스템 이미지를 얻는 더 쉬운 방법은 QEMU를 사용하여 리눅스를 설치하고 coLinux 위키에 설명된 대로 처음 63개의 512바이트 블록을 제거하여 이미지를 "변환"하는 것이다.

coLinux는 기본 그래픽 하드웨어에 접근할 수 없으므로 X 윈도 또는 X 서버는 coLinux에서 직접 실행되지 않지만, 시그윈/X 또는 Xming과 같은 X 서버를 윈도우에 설치하여 KDE 또는 그놈과 거의 모든 다른 리눅스 응용 프로그램 및 배포판을 사용할 수 있다. 이 모든 문제는 우분투 기반의 andLinux 또는 슬랙웨어 기반의 TopologiLinux와 같은 coLinux 기반 배포판을 사용함으로써 해결된다.

 전용 배포판 
몇몇 배포판은 coLinux와 함께 작동하도록 특별히 제작되었다.

 AndLinux
 speedLinux
 TopologiLinux

 에뮬레이트된 하드웨어 
 TAP, Pcap, NDIS 및 Slirp를 통한 이더넷 네트워크.

 제약 사항 
 아직 64비트 윈도우 또는 리눅스를 지원하지 않으며(4GB 이상의 메모리도 활용하지 못함), 커뮤니티에서 포트가 개발 중이다.
 다중 프로세서(SMP)를 지원하지 않는다. 리눅스 응용 프로그램과 기본 커널은 하나의 CPU만 사용할 수 있다.

 같이 보기 

 Win32-loader
 플랫폼 가상화
 플랫폼 가상화 소프트웨어 비교
 시그윈
 MSYS
 Longene
 Chroot
 리눅스용 윈도우 하위 시스템

 각주 

 외부 링크 
 
 
 GitHub의 coLinux
 
 
 

분류:가상화 소프트웨어
분류:자유 가상화 소프트웨어
분류:윈도우 전용 자유 소프트웨어
H8 계열

섬네일|H8S/2357
히타치 H8은 르네사스 일렉트로닉스가 제조한 대규모 8비트, 16비트, 32비트 마이크로컨트롤러 제품군으로, 1990년대 초 히타치 반도체에서 시작되었다. 원래의 설계인 H8/300은 16비트 레지스터와 ALU를 갖춘 8비트 프로세서로, 일부 16비트 연산을 허용했다. 두 가지 업그레이드 버전이 출시되었는데, H8/300L은 명령어를 확장하여 완전한 16비트 머신이 되면서 저비용에 최적화되었고, H8/300H는 레지스터를 더욱 확장하여 32비트 연산을 허용하고 저전력/고성능 역할에 최적화되었다. 많은 변형이 존재한다.

전체 라인은 2003년 르네사스에 매각되었다. 르네사스는 2023년 현재까지도 이 디자인을 기존 고객에게만 판매하고 있다. 르네사스 사용자 커뮤니티 게시판의 한 관리자는 2011년에 H8 기반 제품의 추가 개발 계획이 없다고 언급했다. H8은 리눅스 커널 버전 4.2부터 지원되었지만, 버전 5.19에서 지원이 제거되었다.

더 높은 성능이 필요한 경우, 히타치는 슈퍼H 32비트 RISC 유사 마이크로컨트롤러 제품군을 출시했으며, 이는 H8을 상당 부분 대체했다.

변형
하위 제품군에는 8/16비트 H8/300 및 H8/500, 16/32비트 H8/300H 및 H8S, 그리고 32비트 H8SX 시리즈가 있으며, 각각 속도, 타이머, 인터럽트, 직렬 포트와 같은 내장 주변기기 선택, ROM, 플래시 메모리 및 RAM의 양에 따라 수십 가지의 다양한 변형이 존재한다. 내장 ROM과 플래시 메모리는 일반적으로 16 KB에서 1024 KB까지, RAM은 512 B에서 512 KB까지 다양하다.

H8의 기본 아키텍처는 DEC PDP-11 아키텍처를 본떠 만들어졌으며, 8개의 16비트 레지스터(H8/300H 및 H8S는 추가로 8개의 16비트 레지스터 뱅크를 가지고 있음)와 다양한 주소 지정 방식을 특징으로 한다. 그러나 PDP-11과 달리 H8 아키텍처는 빅 엔디언 바이트 순서를 사용한다.

H8/300H와 H8S는 모두 8개의 32비트 레지스터를 가지고 있으며, 각 레지스터는 하나의 32비트 레지스터, 두 개의 16비트 레지스터, 또는 두 개의 8비트 레지스터로 취급될 수 있으며, H8S는 내부 32비트 구성을 가지고 있다. 여러 회사에서 H8 제품군용 컴파일러를 제공하며, GCC 포트 전체와 시뮬레이터도 포함되어 있다. 다양한 하드웨어 에뮬레이터도 사용할 수 있다.

이 제품군은 H8SX 32비트 컨트롤러로 이어지고 있다.

응용 분야
섬네일|르네사스 H8S-2110BV
H8S는 디지털 카메라, 시비코 휴대용 컴퓨터, 일부 씽크패드 노트북, 프린터 컨트롤러, 스마트카드, 체스 컴퓨터, 야마하 FS1R과 같은 음악 신시사이저, 롤랜드 SC-55 및 Roland JV880 그리고 다양한 자동차 서브시스템에서 발견될 수 있다. 고급 로봇 장난감/교육 도구인 레고 마인드스톰 RCX는 H8/300을 사용한다. H8/3002는 1990년대 후반 남코가 제작한 다양한 게임, 특히 System 12 아키텍처를 사용하는 게임과 야마하의 DB50XG 및 DB60XG 도터보드와 SW60XG ISA 버스 사운드 카드에서 사운드 프로세서로 사용되었다.

H8/500은 노키아 2110 전화기에도 사용되었다.

 각주 

 외부 링크 
 르네사스 일렉트로닉스
 르네사스 제품 온라인 교육
 커뮤니티 지원 포럼

분류:마이크로컨트롤러
BASIC 스탬프

right|섬네일|200px|베이직 스탬프 2 다이어그램
BASIC 스탬프(BASIC Stamp)는 ROM에 작은 특수 베이직 인터프리터(PBASIC)가 내장된 마이크로컨트롤러이다. 패러렐스에서 만들었으며 1990년대 초부터 전자제품 애호가들에게 인기가 많았다.

기술 사양
BASIC 스탬프 2는 24핀 DIP 칩 형태를 띠고 있지만, 사실은 마이크로프로세서 시스템의 필수 요소를 포함하는 작은 인쇄 회로 기판(PCB)이다.
 CPU, 베이직 인터프리터가 내장된 ROM 및 다양한 주변 장치를 포함하는 마이크로컨트롤러
 2KB의 I²C EEPROM 메모리
 세라믹 공진기 형태의 클록
 전압 조정기
 외부 입출력

그 결과 애호가는 9V 배터리를 BASIC 스탬프에 연결하여 완전한 시스템을 가질 수 있다. 개인용 컴퓨터와의 직렬 통신은 프로그래머가 소프트웨어를 BASIC 스탬프에 다운로드할 수 있게 하며, 이는 온보드 비휘발성 메모리 장치에 저장된다. 즉, 스탬프의 전원이 제거되어도 지워지거나 다시 프로그래밍될 때까지 프로그램이 유지된다. 전원이 다시 연결되면 스탬프는 즉시 슬롯 0(0~7번 중 0번)의 프로그램을 실행하기 시작한다.

프로그래밍
BASIC 스탬프는 베이직 언어의 변형인 PBASIC으로 프로그래밍된다. PBASIC은 PWM, 직렬 통신, I²C 및 1-Wire 통신, 일반 LCD 드라이버 회로와의 통신, 취미 서보 펄스 트레인, 유사 정현파 주파수, 아날로그 값을 감지하는 데 사용할 수 있는 RC 회로 타이밍 기능 등 일반적인 마이크로컨트롤러 기능을 통합한다.

Windows의 통합 개발 환경(IDE)인 '스탬프 에디터'에서 프로그램이 작성되면 통사론을 확인하고 토큰화하여 직렬/USB 미니-B 케이블을 통해 칩으로 전송되어 실행된다.

버전
right|섬네일|200px|베이직 스탬프 2
현재 인터프리터는 네 가지 변형이 있다.
 (1992) BASIC 스탬프 1 (BS1)
 (1995) BASIC 스탬프 2 (BS2), 여섯 가지 하위 변형:
 BS2e
 BS2sx
 BS2p24
 BS2p40
 BS2pe
 BS2px
 (2002) 재블린 스탬프
 (2006) 프로펠러\스핀 스탬프

BS2 하위 변형은 원래 BS2 모델에 비해 더 많은 메모리, 더 높은 실행 속도, 추가적인 특수 PBASIC 명령, 추가 I/O 핀 등을 특징으로 한다. BS1과 BS2는 PIC를 사용하는 반면, 나머지 BASIC 스탬프 2 변형은 패러렐스 SX 프로세서를 사용한다.

세 번째 변형은 재블린 스탬프이다. 이 모듈은 패러렐스의 PBASIC 대신 썬 마이크로시스템즈의 자바 프로그래밍 언어의 하위 집합을 사용한다. 네트워킹 기능은 포함하지 않는다.

네 번째 변형은 스핀 스탬프이다. 이 모듈은 패러렐스 프로펠러를 기반으로 하므로 PBASIC 대신 SPIN 프로그래밍 언어를 사용한다.

현재 여러 회사에서 더 빠른 실행, 아날로그-디지털 변환기 및 백그라운드에서 실행될 수 있는 하드웨어 기반 PWM과 같은 추가 기능을 갖춘 BASIC 스탬프 "클론"을 만들고 있다.

패러렐스 프로펠러는 BASIC 스탬프와 유사한 기능을 제공하는 소프트웨어 라이브러리를 점차 축적하고 있다. 그러나 어떤 PBASIC 기능에 현재 스핀에 해당하는 기능이 있는지에 대한 통일된 목록은 없다.

 같이 보기 

 아두이노
 패러렐스 BASIC 스탬프와 핀 호환되는 ARM 기반 PCB
 ioBridge
 메이크 컨트롤러 키트
 OOPic
 PICAXE

 각주 

 외부 링크 
 "PBASIC 2.5 제어 구조를 구형 PBASIC과 비교" – 트레이시 앨런, EME 시스템즈, 2003
 패러렐스 포럼 – 토론 포럼
 패러렐스 – BASIC 스탬프 및 BASIC 스탬프 2의 기업 웹사이트
 "BASIC 스탬프 2 마이크로컨트롤러를 활용하는 프로그래밍 가능한 지능형 로봇 스크리블러 로봇 독립 리뷰" – 앤디 카이저

분류:마이크로컨트롤러
분류:베이직 인터프리터
인텔 MCS-48

섬네일|오른쪽|인텔 8048 마이크로컨트롤러
오른쪽|섬네일|UV EPROM이 있는 8749
섬네일|오른쪽|HP3478A 멀티미터에 사용된 인텔 8049 마이크로컨트롤러. 이 칩은 1984년 둘째 주에 제조되었다.
섬네일|오른쪽|인텔 8749 다이

|}

MCS-48 마이크로컨트롤러 시리즈는 인텔의 첫 번째 마이크로컨트롤러로, 1976년에 처음 출시되었다. 초기 구성원으로는 8048, 8035, 8748이 있다. 8048은 이 제품군에서 가장 유명한 구성원이라고 할 수 있다. 처음에는 이 제품군이 NMOS (n형 금속 산화물 반도체) 기술을 사용하여 생산되었다. 1980년대 초에는 CMOS 기술로도 제공되었다. 이 기술을 여전히 사용하는 구형 설계를 지원하기 위해 1990년대까지 제조되었다.

MCS-48 시리즈는 내부 또는 외부 프로그램 ROM과 64에서 256바이트의 내부(온칩) RAM을 갖춘 수정된 하버드 아키텍처를 사용한다. I/O는 프로그램 및 데이터와 분리된 자체 주소 공간에 매핑된다.

MCS-48 시리즈는 결국 매우 성공적인 MCS-51 시리즈로 대체되었지만, 저렴한 비용, 넓은 가용성, 메모리 효율적인 1바이트 명령어 세트, 그리고 성숙한 개발 도구 덕분에 2000년까지도 상당히 인기를 유지했다. 이 때문에 TV 리모컨, 컴퓨터 키보드, 장난감과 같이 대량 생산되고 비용에 민감한 소비자 가전 제품에 사용되었다.

 변형 
8049는 2KB의 마스크 ROM (8748 및 8749는 EPROM을 가졌다)을 가지고 있으며, 이는 4KB의 외부 ROM으로 대체될 수 있다. 또한 128 바이트의 RAM과 27개의 I/O 포트를 갖추고 있다. 마이크로컨트롤러의 발진기 블록은 클록 입력 주파수를 3으로 나눈 다음, 그 결과를 다시 5개의 머신 상태로 나눈다. 최대 11 MHz의 크리스탈 주파수를 사용하면 단일 사이클 명령어의 0.73 MIPS가 생성된다. 명령어의 약 70%는 단일 바이트 및 단일 사이클 명령어이지만, 30%는 두 사이클 또는 두 바이트가 필요하므로 일반적인 성능은 0.5 MIPS에 더 가깝다.

섬네일|인텔 P8242 - AT 호환 컴퓨터용 피닉스 펌웨어를 탑재한 키보드 컨트롤러
섬네일|내셔널 세미컨덕터 NS87P50D-6 – 87P50 피기백 마이크로컨트롤러의 2차 공급원

 사용 
MCS-48 시리즈는 일반적으로 컴퓨터 및 터미널 키보드에 사용되어 키 누름을 디지털 회로가 이해할 수 있는 프로토콜로 변환했다. 이는 또한 직렬 통신을 가능하게 하여 외부 키보드의 케이블에 필요한 도체 수를 줄였다. 마이크로프로세서는 적어도 1972년부터 키보드에 사용되어 이전의 개별 설계를 단순화했다. 8048은 1978년 출시 이후 이 응용 분야에 사용되어 왔다.

1979년에 출시된 Tandy/Radio Shack TRS-80 Model II는 키보드에 8021을 사용했다. 8021 프로세서는 키 매트릭스를 스캔하고, 스위치 닫힘을 8비트 코드로 변환한 다음, 해당 코드를 직렬로 주 시스템의 키보드 인터페이스로 전송한다. 또한 표시 LED를 켜거나 끄는 명령을 수락하기도 한다. 8021은 TRS-80 모델 12, 12B, 16, 16B 및 Tandy 6000/6000HD의 키보드에도 사용되었다.

오리지널 IBM PC 키보드는 8048을 내부 마이크로컨트롤러로 사용했다. PC AT는 PC의 인텔 8255 주변 장치 인터페이스 칩을 I/O 포트 주소 에서 포트 주소 및 를 통해 액세스할 수 있는 8042로 대체했다. 8042는 키보드 인터페이스를 관리할 뿐만 아니라 AT의 인텔 80286 CPU를 위한 A20 라인 게이팅 기능을 제어했으며, 소프트웨어 명령을 통해 80286을 재설정할 수 있었다 (80386 및 이후 프로세서와 달리 80286은 재설정 외에는 보호 모드에서 리얼 모드로 전환할 방법이 없었다). 이후의 PC 호환 기종은 8042의 기능을 슈퍼 I/O 장치에 통합했다.

8048은 마그나복스 오디세이² 비디오 게임 콘솔, 코르그 트라이던트 시리즈, 코르그 폴리-61, 롤랜드 주피터-4 및 롤랜드 프로마스 아날로그 신시사이저에 사용되었다. 신클레어 QL은 밀접하게 관련된 인텔 8049를 사용하여 키보드, 조이스틱 포트, RS-232 입력 및 오디오를 관리했다. ROM이 없는 8035 변형은 닌텐도의 아케이드 게임 동키콩에서 배경 음악을 생성하는 데 사용되었다.

 파생 마이크로컨트롤러 
필립스 반도체 (현재 NXP)는 이 시리즈를 생산할 라이선스를 소유하고 있었으며, 이 아키텍처를 기반으로 MAB8400 제품군을 개발했다. 이들은 I²C 인터페이스를 통합한 최초의 마이크로컨트롤러였으며, 초기 필립스 (마그나복스 미국) 콤팩트 디스크 플레이어 (예: CD-100)에 사용되었다.

 같이 보기 
 HSE-49 에뮬레이터

 각주 

 참고 문헌 
MCS-48

UPI-41

 외부 링크 
 MCS-48 제품군 아키텍처
 
 컴퓨터 역사 박물관, 인텔 8048 마이크로컨트롤러 구술 역사 패널
 마이크로컨트롤러 NEC 8741 (실리콘 칩 이미지)

분류:마이크로컨트롤러
인텔 MCS-96

right|섬네일|180px|인텔 P8096
인텔 MCS-96은 임베디드 시스템에서 흔히 사용되는 마이크로컨트롤러(MCU) 제품군이다. 이 제품군은 흔히 8xC196 제품군 또는 80196(제품군 내에서 가장 인기 있는 MCU)으로 불린다. 이 MCU는 주로 하드 디스크 드라이브, 모뎀, 프린터, 패턴 인식 및 모터 제어에 사용된다. 2007년에 인텔은 MCS-96 마이크로컨트롤러 제품군 전체의 단종을 발표했다. 인텔은 "이 부품에 대한 직접적인 대체품은 없으며 재설계가 필요할 가능성이 높다"고 언급했다.

 역사 
right|섬네일|180px|인텔 A8097 CPGA
right|섬네일|180px|세라믹 DIP-48 패키지의 인텔 C8095
MCS-96 제품군은 포드 EEC-IV 엔진 컨트롤러 제품군의 첫 번째 프로세서인 인텔 8061의 상업적 파생으로 시작되었다. 8061과 8096의 차이점으로는 메모리 인터페이스 버스가 있는데, 8061의 M-버스(M-Bus)는 메모리 장치에 트래킹 프로그램 카운터가 필요한 '버스트 모드' 버스이다. 또한 두 부품의 I/O 주변 장치에도 상당한 차이가 있었다. 8061은 8개의 HSI(펄스 측정) 입력, HSI 핀과 완전히 분리된 10개의 HSO(펄스 생성) 출력, 그리고 8096보다 더 많은 채널을 가진 비샘플링 10비트 ADC를 가지고 있었다. EEC-IV와 8096의 많은 차이점은 I/O 핀 수를 줄이기 위해 핀을 공유하고 더 전통적인 메모리 인터페이스 버스에 핀을 사용하려는 노력에서 비롯되었다. 8096에는 8061에 없었던 온칩 프로그램 메모리도 있었다.

포드는 1982년에 콜로라도 스프링스에 포드 마이크로일렉트로닉스(Ford Microelectronics) 시설을 설립하여 EEC-IV 제품군을 보급하고, 자동차에 사용될 다른 맞춤형 회로를 개발하며, 비소화 갈륨 집적 회로 시장을 탐구했다. 이 제품군에는 1메가바이트의 메모리를 주소 지정할 수 있는 메모리 컨트롤러를 통합한 8065가 포함되었다.

이 마이크로컨트롤러 제품군은 16비트이지만, 일부 32비트 연산도 수행한다. 프로세서는 16, 20, 25, 50 MHz로 작동하며, 3개의 작은 제품군으로 나뉜다. HSI(고속 입력) / HSO(고속 출력) 제품군은 16 및 20 MHz로 작동하고, EPA(이벤트 프로세서 배열) 제품군은 모든 주파수에서 작동한다.

MCS-96 제품군의 주요 특징은 대용량 온칩 메모리, 레지스터-레지스터 아키텍처, 세 가지 피연산자 명령, 8비트 또는 16비트 버스 폭을 허용하는 버스 컨트롤러, 그리고 대규모 블록(256개 이상)의 하드웨어 레지스터에 대한 직접 플랫 어드레싱을 포함한다.

 809x/839x/879x 제품군 
809x/839x/879x IC는 MCS-96 제품군의 구성원이다. MCS-96은 8x196 제품군으로 알려져 있지만, 8095가 이 제품군의 첫 번째 구성원이었다. 나중에 8096, 8097, 8395, 8396, 8397이 제품군에 추가되었다.

인텔 809x/839x/879x IC는 12 MHz, 16-비트 마이크로컨트롤러이다. 이 마이크로칩은 5 V, 3 마이크로미터, HMOS 공정을 기반으로 한다. 이 마이크로컨트롤러는 온칩 ALU, 4채널 10비트 ADC, 8비트 펄스 폭 변조, 워치독 타이머, 4개의 16비트 소프트웨어 타이머, 하드웨어 곱셈, 나눗셈, 그리고 8 KB의 온칩 ROM을 가지고 있다. 8095는 ROM이 없으며, 5개의 8비트 고속 I/O, 완전 이중 직렬 포트 및 ADC 입력과 PWM 출력을 가지고 있다.

8095는 48핀 세라믹 DIP 패키지와 다음 부품 번호 변형으로 제공된다. C8095-90

 8x196/8xC196 제품군 
MCS-96 제품군은 일반적으로 80C196 IC로 알려져 있지만, 이 제품군에는 먼저 출시된 809x/839x/879x 마이크로컨트롤러도 포함된다. 이 하위 제품군의 구성원으로는 80C196, 83C196, 87C196, 88C196이 있다.

 다른 공급업체 
2021년 기준으로 MCS-96 아키텍처를 사용하는 마이크로컨트롤러는 러시아 보로네시의 NIIET에서 1874 시리즈 집적 회로로 여전히 제조되고 있다. 여기에는 명칭 1874VE7T() 하의 방사능 경화 장치가 스페이스와이어 인터페이스와 함께 포함된다. Cobham(이전 에어로플렉스)은 약 2020년까지 또 다른 방사능 경화 MCS-96 마이크로컨트롤러를 제조했다.

 같이 보기 
 인텔 PL/M-96

 각주 
 Intel: "809XBH/839XBH/879XBH COMMERCIAL/EXPRESS HMOS MICROCONTROLLER" (Preliminary) (Accessed 7. September 2007)
 Intel: "MCS-96 809X-90,839X-90", Order #270016-004, T-49-19-16;T-49-19-59, Oct 1987 (Preliminary) (Accessed 7. September 2007)
 http://www.cpushack.com/chippics/Intel/8x9x/IntelC8095-90.html (Accessed 7. September 2007)
 https://web.archive.org/web/20071009212029/http://dragonsdawn.org/photos/MacIICard.jpg (Accessed 7. September 2007)

참고

분류:마이크로컨트롤러
미디어 프로세서

섬네일|니콘 Expeed
미디어 프로세서(Media processor)는 주로 이미지/비디오 프로세서로 사용되며, 마이크로프로세서 기반의 시스템 온 칩으로, 스트리밍 데이터를 실시간(예: 디스플레이 새로 고침) 속도로 처리하도록 설계되었다. 이 장치들은 디지털 신호 처리 장치 (DSP)의 한 종류로도 간주될 수 있다.

컴퓨터 디스플레이에 사용되는 그래픽 처리 장치(GPU)와 달리, 미디어 프로세서는 디지털 텔레비전과 셋톱박스를 대상으로 한다.

스트리밍 디지털 미디어 클래스는 다음과 같다:
 비압축 비디오
 압축 디지털 비디오 - 예: MPEG-1, MPEG-2, MPEG-4
 디지털 오디오 - 예: PCM, AAC

이러한 SOC는 다음으로 구성된다:
 미디어 데이터 유형을 처리하도록 최적화된 마이크로프로세서
 메모리 인터페이스
 스트리밍 미디어 인터페이스
 다양한 디지털 미디어 코덱을 처리하는 데 도움이 되는 전문 기능 장치

마이크로프로세서는 다음과 같은 최적화를 가질 수 있다:
 미디어 데이터 유형을 효율적으로 처리하기 위한 벡터 처리 또는 SIMD 기능 장치
 DSP와 유사한 기능

미디어 프로세서 이전에는 이러한 스트리밍 미디어 데이터 유형이 현장에서 업데이트할 수 없는 고정 기능의 하드와이어드 ASIC를 사용하여 처리되었다. 이는 미디어 표준이 변경될 때 큰 단점이었다. 미디어 프로세서는 소프트웨어 프로그래밍 방식 장치이므로, 처리 작업은 새로운 소프트웨어 릴리스로 업데이트될 수 있었다. 이를 통해 하드웨어 재설계 없이 새로운 세대의 시스템을 만들 수 있었다. 셋톱박스의 경우 케이블 또는 위성 네트워크를 통해 새로운 소프트웨어를 다운로드하여 현장에서 업그레이드할 가능성까지 제공되었다.

미디어 프로세서 아이디어를 개척하고(그리고 미디어 프로세서라는 마케팅 용어를 만든) 회사들은 다음과 같다:

 마이크로유니티 미디어프로세서 - 1996년 출시 전 취소됨
 IBM Mfast - 1995년 마이크로프로세서 포럼에서 설명되었고, 1997년 중반 출시 예정이었으나 출시 전 취소됨
 이퀘이터 세미컨덕터 BSP 라인 - 이들의 프로세서는 히타치 제작소 텔레비전에 사용되었으며, 회사는 픽셀웍스에 인수됨
 크로마틱 리서치 MPact 라인 - 이들의 제품은 1990년대 중반 일부 PC 그래픽 카드에 사용되었으며, 회사는 ATI 테크놀로지스에 인수됨
 필립스 트라이미디어 라인 - 필립스, 델, 소니 등의 가전 제품에 사용되었으며, 필립스 반도체는 필립스에서 분리되어 2006년 NXP 반도체가 됨

가전제품 회사들은 자체 미디어 프로세서를 설계하고 이를 비디오 제품에 통합함으로써 이 시장을 성공적으로 지배해 왔다. 필립스, 삼성그룹, 마쓰시타, 후지쯔, 미쓰비시와 같은 회사들은 자체적인 사내 미디어 프로세서 장치를 보유하고 있다.

이러한 장치의 최신 세대는 이제 고선명 텔레비전 신호를 처리할 때 크게 증가된 컴퓨팅 요구 사항을 처리하기 위해 다양한 형태의 다중 처리—다중 CPU 또는 DSP를 사용한다.

 외부 링크 
 http://www.equator.com
 best lga 1155 cpu 
 http://www.philips.com
 http://www.nxp.com

분류:디지털 신호 처리
분류:디지털 신호 처리 장치
분류:디지털 전자공학
분류:중앙 처리 장치
분류:코프로세서
HP-GL

HP-GL은 휴렛 팩커드 그래픽스 언어(Hewlett-Packard Graphics Language)의 약자로, 흔히 HPGL로 표기되며 휴렛 팩커드(HP)가 개발한 프린터 제어 언어이다. HP-GL은 HP 플로터에서 사용되는 주요 프린터 제어 언어였다. 1977년 플로터 HP-9872와 함께 도입되었으며, 거의 모든 플로터의 표준이 되었다. 휴렛 팩커드의 프린터 또한 일반적으로 PCL 외에 HP-GL/2를 지원한다.

 설계 
이 언어는 일련의 두 글자 코드(기억술)와 그 뒤에 오는 선택적 매개변수로 구성된다. 예를 들어, 페이지에 호를 그리려면 다음과 같은 문자열을 보낸다:

AA100,100,50;

이는 절대 호(Arc Absolute)를 의미하며, 매개변수는 페이지의 절대 좌표 100,100에 호의 중심을 배치하고, 시작 각도는 반시계 방향으로 50 도로 측정된다. 네 번째 선택적 매개변수(여기서는 사용되지 않음)는 호가 얼마나 계속되는지 지정하며, 기본값은 5도이다.

처음 도입되었을 때 HP-GL에는 다음 명령이 포함되어 있었다.

형식:
 [i]: -32767에서 32768 사이의 정수 형식. 소수점 없음.
 [d]: +/- 127.9999 사이의 십진 형식. 선택적 소수점.
 [c]: ASCII 문자

 예시 
일반적인 HP-GL 파일은 몇 가지 설정 명령으로 시작하여 긴 그래픽 명령 문자열로 이어진다. 파일은 ASCII(텍스트 파일) 형식이었다. 예를 들면:

좌표계는 HP 플로터가 지원할 수 있는 최소 단위를 기반으로 했으며, 25 μm (즉, 밀리미터당 40 단위, 인치당 1016 단위)로 설정되었다.
좌표 공간은 양수 또는 음수 부동소수점 숫자, 특히 ±230이었다.

 HP-GL/2 
원래의 HP-GL 언어는 선 너비 정의를 지원하지 않았는데, 이 매개변수는 플로터에 장착된 펜에 의해 결정되었기 때문이다. 최초의 잉크젯 플로터가 등장하면서, HP-GL 파일 내에 지정된 "펜"의 선 너비를 프린터에서 설정해야만 어떤 선 너비로 인쇄해야 할지 알 수 있었고, 이는 번거롭고 오류가 발생하기 쉬운 과정이었다. 휴렛 팩커드 그래픽스 언어/2 즉 HP-GL/2가 등장하면서, 선 너비 정의가 언어에 도입되어 이 단계를 없앨 수 있었다. 또한, 다른 개선 사항 중에서도 더 작은 파일과 더 짧은 파일 전송 시간을 허용하는 이진 파일 형식이 정의되었고, 최소 해상도가 감소되었다.

 AGL 
HP-GL은 베이직 프로그래밍 언어의 확장인 AGL (A Graphics Language)과 관련이 있다. AGL은 휴렛 팩커드 미니컴퓨터에 구현되어 플로터 제어를 단순화했다. AGL 명령은 원하는 그래픽 플로팅 기능을 설명하며, 컴퓨터는 이를 여러 HP-GL 명령으로 플로터에 전달한다.

 같이 보기 
 DMPL, 휴스턴 인스트루먼트의 다른 플로터 언어
 거버 포맷은 또 다른 플롯 설명 형식이다.
 로고, HP-GL과 유사한 그리기 명령을 가진 컴퓨터 언어

 각주 

 더 읽어보기 
 

 외부 링크 
 
 
 (NB. A Python-based HP-GL plotter control library for using vintage pen plotters with contemporary operating systems.)

분류:페이지 기술 언어
분류:벡터 그래픽스
인터프레스

인터프레스(Interpress)는 제록스 파크에서 개발한 페이지 기술 언어로, 포스 프로그래밍 언어와 초기 그래픽스 언어인 JaM을 기반으로 한다. 파크는 이를 상용화하는 데 실패했고, 이에 따라 개발자인 척 게슈케와 존 워녹은 1982년 어도비 시스템즈를 설립하고 포스트스크립트를 개발했다. 인터프레스는 일부 제록스 프린터, 특히 DocuTech 네트워크 생산 발행기에서 사용되며, 제록스 벤투라 퍼블리셔에서 지원된다. 또한 파크의 InterScript(서식 있는 텍스트 워드 프로세서)의 출력 형식으로도 사용된다. 인터프레스는 다른 프로세스(송신기)에 의해 완전히 구성된 문서의 원하는 또는 이상적인 모양을 설명한다. 모든 줄 끝, 하이픈 연결, 줄 맞춤 결정, 그리고 실제로 이미지의 모양과 위치에 대한 모든 결정은 마스터를 생성하기 전에 이루어진다. 장치 독립적인 형식으로서, 의도된 레이아웃을 유지하면서 다양한 장치에서 인쇄할 수 있다.

 기능 세트 

인터프레스는 매우 광범위하므로, 일부 프린터 제조업체는 개발 시간과 비용을 줄이거나 성능을 향상시키기 위해 인터프레스의 일부만 지원하는 것을 선호할 수 있다. 불일치를 방지하기 위해 인터프레스는 세 가지 표준 기능 세트를 정의한다.

 상업용 세트
 기본 텍스트 또는 스캔된 이미지를 사용하는 데이터 센터에서 요구될 수 있는 텍스트 및 양식 인쇄 애플리케이션용으로 설계되었다.

 출판용 세트
 상업용 세트의 모든 기능에 더해 곡선, 채워진 윤곽선, 직사각형 클리핑, 합성 그래픽 및 회색조 색상 기능을 포함한다.

 전문가용 그래픽 세트
 모든 이미징 기능(기본 언어의 유형, 리터럴 및 연산자), 풀 컬러 인코딩 및 인쇄 지침(어니스트 L. 레그에 의해 확장됨)으로 구성된다.

 인쇄 지침 
이 기능 세트는 프린터에 사용할 용지(용지 크기, 종류, 색상), 복사본 수, 인쇄할 면, 그리고 스테이플링과 같은 마무리 작업에 대한 지시를 할 수 있도록 한다. 이러한 지침은 선택 사항이며 그 작동은 프린터 기능에 따라 달라진다.

 예시 

더 복잡한 구조에는 중첩 블록과 CONTENTINSTRUCTIONS가 포함될 수 있으며, 이는 콘텐츠-지침 본문과 페이지 본문을 구별하는 데 사용되는 토큰이다. 일반적으로 콘텐츠 지침이 문서 지침보다 우선한다. 중첩 블록 {BEGIN..END}은 작은 문서들로 큰 문서를 구성할 수 있도록 한다.

 글꼴 
이는 문서 전체에 적용되는 경우가 많으므로 프리앰블에서 자주 발견되는 정의이다.

 각주 

 외부 링크 
 1985년 유즈넷 게시물: 인터프레스의 역사와 포스트스크립트와의 비교
 Docu + Design Daube "Interpress"
 인터프레스 소개

분류:페이지 기술 언어
분류:스택 지향 프로그래밍 언어
분류:디지털 타이포그래피
분류:기술 소통
분류:벡터 그래픽스
분류:제록스
분류:컴퓨터 인쇄