모토로라 6845

Motorola 6845
Motorola 6845 CRT 컨트롤러

Motorola 6845 또는 MC6845는 1980년대에 8비트 컴퓨터에서 널리 사용된 디스플레이 컨트롤러입니다.원래는 Motorola 6800 CPU를 기반으로 한 설계로 관련 부품 번호를 부여받았으며, 다양한 다른 프로세서와 함께 널리 사용되었으며 Zilog Z80 및 MOS 6502를 기반으로 하는 기계에서 가장 많이 볼 수 있었습니다.

6845는 그 자체로는 디스플레이 솔루션 전체가 아닙니다.칩의 주요 기능은 디스플레이 메모리에 대한 적절한 접근 시간 및 다음에 그릴 부분의 메모리 주소를 계산하는 것입니다.기계 내의 다른 회로는 6845에 의해 제공된 주소를 사용하여 패턴을 가져온 다음 그립니다.이 하드웨어의 실장은 전적으로 설계자에게 달려 있으며 기계마다 매우 다양합니다.6845는 문자 표시를 목적으로 하고 있지만, 픽셀 베이스의 그래픽스에도 사용할 수 있습니다.또, 교묘한 프로그래밍도 가능합니다.

잘 알려진 용도로는 BBC Micro, Amstrad CPC 및 Apple II용 VideoTerm 디스플레이 카드가 있습니다.또한 MDA, HGC(Hercules Graphics Card), CGA(Color Graphics Adapter) 등 IBM PC용 초기 그래픽 어댑터 카드의 일부이기도 합니다.EGAVGA PC 비디오 어댑터의 커스텀 회로에 의해 기능이 중복되어 확장되었습니다.

HitachiHD46505로 설계한 히타치 제작 버전은 Sony, Sharp, Panasonic, Casio 등 다양한 일본 컴퓨터에 포함되어 있습니다.6845 CRTC 또는 CRTC6845라고도 하며, 이는 "음극 선관 컨트롤러"라는 의미입니다.이 버전은 800x400 해상도의 흑백 디스플레이를 제공하기 위해 Ablot PC 및 Victor 9000에서 사용되었습니다.

CRT 컨트롤러의 공통 클론은 Unified Microelectronics Corporation(UMC) UM6845E CRT 컨트롤러입니다.

냉전 시대의 테크놀로지 금수 기간 동안 6845는 불가리아에서 CM607이라는 이름으로 복제되었습니다.

개요

이 칩은 래스터 디스플레이와 인터페이스하기 위해 필요한 신호를 생성하지만 실제 픽셀은 생성하지 않지만 픽셀 비디오(명암) 신호에 커서와 비디오 블랭킹 정보를 제공합니다.올바른 타이밍의 수평 및 수직 동기화를 생성하고 메모리 내의 다음 픽셀 또는 픽셀 세트를 읽을 주소를 제공하기 위해 사용됩니다.이 값을 읽고 픽셀로 변환하여 CRT로 전송하는 프로세스는 다른 회로에 맡겨집니다.따라서 6845를 사용하는 시스템은 색상의 수와 값이 매우 다르거나 색상을 전혀 지원하지 않을 수 있습니다.

하드웨어 텍스트커서와 마찬가지로 인터레이스 및 비인터레이스 출력 모드가 지원됩니다.동기 생성에는 수평 및 수직 비디오 블랭크 신호의 생성이 포함됩니다.이 신호들은 외부 픽셀 생성 회로를 조정하는 데 사용됩니다.또, 내부 래치가 설치되어 있어 트리거 되었을 때에 비디오 주소의 카피가 복제되어 보존되어 나중에 CPU에 의해서 판독할 수 있습니다.이 기능은 전자빔이 통과할 때 6845에 펄스를 전송하여 실행 중인 프로그램이 가리킨 위치를 다시 읽을 수 있도록 함으로써 작동할 수 있는 라이트 펜 및 라이트 건에 유용합니다.이 기능 때문에 6845를 사용하는 대부분의 컴퓨터 비디오 어댑터에는 라이트 펜 인터페이스가 포함되어 있었습니다.보드는 보통 컴퓨터 외부가 아닌 보드 자체에 내장되어 있었고, 사용자 매뉴얼에 기재되어 있지 않았습니다.

비디오 타이밍의 모든 측면이 프로그래밍 가능하기 때문에 소프트웨어에서는 단일 머신이 NTSC 타이밍과 PAL 타이밍을 전환할 수 있습니다.6845는 모니터 또는 기타 래스터 디스플레이를 구동하는 데 사용할 수 있습니다.

내부

MC6845 핀 할당

칩에는 비디오 타이밍의 모든 측면을 제어하는 총 18개8비트 레지스터가 있습니다.외부 컴포넌트에 노출되는 주소는 2개뿐입니다.하나는 읽거나 쓸 내부 레지스터를 선택하는 주소이고 다른 하나는 해당 레지스터에 액세스하는 주소입니다.

6845는 문자 기반 디스플레이용입니다.생성되는 모든 주소는 14비트 문자 주소와 5비트 행 주소의 두 부분으로 구성됩니다.풀 어드레스 범위 RA0~RA4 를 사용하는 경우는,CA0-CA13 6845는 2 = 524,288 워드의 메모리를 어드레스14+5 할 수 있습니다.여기서 워드는 시스템 설계자가 메모리 폭으로서 선택한 임의의 비트 수일 수 있습니다.대부분의 경우처럼 워드사이즈가 1바이트일 경우 6845는 512KiB를 수신처로 지정할 수 있습니다.워드 사이즈가 32비트(예를 들어 워드당 1픽셀의 32비트 컬러 그래픽스)인 경우 6845는 2048kiB에 대응할 수 있으며 64비트 워드의 경우 2배의 용량을 할당할 수 있습니다.이러한 제한은 6845만의 문제가 아니라 6845와 외장 메모리의 조합에 의해 발생합니다.6845가 주소 지정할 수 있는 일의 주소의 수는 524,288로 제한되어 있습니다만, 6845는 주소 지정할 수 있는 각 메모리 위치의 크기에 제한을 두지 않기 때문에 6845가 주소 지정할 수 있는 메모리의 양은 상정하는 것보다 훨씬 많을 수 있습니다.

또, 6845 로 행선지 지정되는 각 워드는, 1 개의 픽셀이나 1 개의 문자가 될 필요는 없습니다.예를 들어 IBM CGA에서 6845를 사용하는 경우를 생각해 보십시오.여기서 워드 사이즈는 1바이트이고 각 워드는 중간 또는 고해상도 그래픽 모드에서 각각 4 또는 8개의 픽셀 또는 1/2 문자를 나타냅니다.CGA 영숫자(텍스트) 모드에서는 문자당 2바이트가 있으며 6845에 의해 순차적으로 액세스 됩니다.첫 번째 바이트는 문자 코드바이트, 두 번째 바이트는 문자 속성바이트입니다

문자 주소는 선형으로 증가합니다.칩이 수평 동기 신호를 보내면 행 주소가 증가합니다.행 주소가 프로그래밍 방식으로 설정된 문자당 행 수와 같지 않은 경우 문자 주소는 방금 완료된 스캔 라인 시작 시의 값으로 재설정됩니다.그렇지 않으면 행 주소가 0으로 리셋되고 메모리주소는 선형적으로 계속 증가합니다.이것에 의해, 6845 가 메모리 주소를 다음의 문자 행에 진행시켜 같은 패턴을 반복하기 전에, 각 문자 행의 래스터 행 마다 같은 문자 값의 시퀀스가 메모리에서 재읽어집니다.따라서 한 문자가 비디오 버퍼에서 하나의 "워드"를 차지하고 있는 경우, 문자당 s개의 스캔 라인이 있는 l개의 과 c개의 열을 표시하려면 l × c개의 메모리 워드가 필요합니다., 1개의 리프레시 사이클을 완료하기 위해서는 많은 메모리 액세스에 s의 시간이 걸립니다.문자 워드의 각 행은 반복적으로 읽힙니다.특히 다음 행을 읽기 전에.즉, 6845를 사용한 문자 디스플레이는 같은 해상도의 모든 포인트 대응 그래픽 디스플레이에 비해 필요한 메모리는 훨씬 적지만 그래픽에 필요한 대역폭만큼 메모리 대역폭이 커집니다.1행의 문자 데이터를 내부적으로 버퍼링하는 다른 비디오 디스플레이 컨트롤러는 디스플레이 버퍼 RAM에서 각 문자 행의 반복 읽기를 피할 수 있으므로 필요한 메모리 대역폭이 감소하고 더 느리고 저렴한 메모리 칩을 사용할 수 있으며 시스템 CPU가 메모리에 액세스하는 시간이 길어집니다.둘 다의 나라.

1970년대, 1980년대, 그리고 1990년대에는 메모리가 비쌌고, 특히 빠른 기억력이 중요했습니다.1970년대 및 1980년대 초중반에는 칩 회로 밀도도 그다지 높지 않았습니다.6845와 같은 칩에 80바이트 이상의 문자 버퍼를 장착하면 칩 다이가 50-100% 확장되어 칩 결함률이 기하급수적으로 증가하고 그에 따른 칩 결함률 감소로 인해 칩 다이가 몇 배 더 비싸질 수 있습니다.금형 크기에 따른 생산 수율.따라서 칩이 도입되었을 때 6845에 이러한 문자 버퍼를 추가하는 것은 비용 효율이 높은 접근법이 아니었습니다.메모리는 매우 저렴하고 고속 메모리가 포함되어 있기 때문에 비디오 디스플레이 컨트롤러가 필요로 하는 메모리 대역폭을 줄일 이유가 거의 없기 때문에 이는 더 이상 엔지니어링상 중요한 고려사항이 아닙니다.동시에 칩 밀도는 급상승하고 있습니다.이는 오늘날 메모리 가격이 낮은 주된 이유입니다.컴퓨터에 사용되는 칩의 대부분은 버퍼와 캐시가 큽니다.오늘날 설계된 6845와 같은 칩은 문자선 캐시를 쉽게 사용하여 문자선 내의 비디오 스캔 행마다 문자를 읽고 다시 읽지 않아도 됩니다.현재 문자 디스플레이를 주로 사용하는 저전력 핸드헬드 디바이스의 경우 고대역폭 메모리액세스에 사용되는 전력은 디스플레이 컨트롤러의 회선 캐시를 사용하여 디스플레이 갱신을 위한 메모리 대역폭을 줄이는 좋은 이유가 될 수 있습니다.

RAM에서 문자 참조를 검색하기 위해 문자 주소를 사용하고 ROM에서 문자 그래픽 테이블을 색인하기 위해 행 주소를 사용하면 일반 텍스트 모드 표시가 구축된다.메모리에서 읽은 문자 참조는 문자 그래픽스 ROM의 주소를 형성하기 위해 행 주소와 결합해야 합니다. 문자 참조는 한 문자를 형성하는 일련의 스캔 라인 패턴을 선택하고 행 주소는 해당 세트로 인덱싱하여 하나의 스캔 라인을 선택해야 합니다.즉, ROM 주소를 2차원 배열로서 사용하기 위해서, 2개의 부분으로 분할해, 제1의 치수는 문자를 선택하고, 제2의 치수는 그 문자의 그래픽 패턴의 행을 선택한다.

리니어 프레임 버퍼

위에서 설명한 바와 같이 6845는 일반적으로 큰 리니어 프레임버퍼를 제공할 수 없습니다.설계에서는 14비트 문자 주소만 사용할 수 있으며 문자당 행 수를 1로 설정할 수 있지만 주소 지정 가능한 메모리의 16kB 제한됩니다.

암스트래드 CPC에서는 행 주소와 문자 주소를 결합하여 비선형 버퍼 내에서 선형 스캔 라인을 제공합니다.행 주소 RA0-RA2를 메모리주소 MA11-MA13에, 문자 주소 CA0-CA10을 메모리주소 MA0-MA10에 매핑합니다.이는 문자 이외의 디스플레이에 대해 프로그래밍이 용이하고 수평 스크롤이 매끄럽다는 장점이 있지만 부드러운 수직 스크롤을 방해할 수 있습니다.

6545와의 차이점

6845와 6545 사이에는 호환성이 매우 높지만 작은 차이가 많이 있습니다.

가장 큰 차이는 6545가 비디오메모리의 주소 버스에 단독 액세스 할 수 있도록 설정되어 있는 것입니다.CPU가 읽고 싶은 주소를 설정하기 위한 2개의 레지스터가 추가되어 칩은 디스플레이 생성용 출력 주소와 CPU 액세스용 디스플레이 세트를 번갈아 사용합니다.

더 작은 변경은 MOS 테크놀로지Rockwell 6545의 1가지 변종에서는 인터레이스된 출력이 지원되지 않으며, 모든 6545에는 옵션 주소 스큐가 포함되어 있기 때문에 설정된 경우 디스플레이가 1개의 문자 사이클 동안 지연됩니다.이 두 번째 기능은 Motorola 6845의 최신 버전에 통합되었습니다.

6545는 상태 비트를 사용하여 선형 14비트 모드에서 작동하도록 설정할 수 있습니다.6845 에서는, 같은 방법으로 문자 높이를 조정할 필요가 있습니다.

트릭

6845 는, 디스플레이의 개시 주소를 프레임 마다 1 회 읽어냅니다.그러나 칩의 내부 타이밍 값을 정확한 시간에 변경하면 현재 프레임을 종료하지 않고 새로운 프레임을 준비하도록 할 수 있으며, 이로 인해 생성된 주소가 디스플레이 도중에 연속적으로 중단됩니다.이것은 일반적으로 데모나 훨씬 드문 게임에서 디스플레이의 한 이동 영역(일반적으로 플레이 필드)과 정적(일반적으로 상태 디스플레이)을 제공하기 위해 사용됩니다.

수직 스크롤은 문자 시작 주소만 설정할 수 있고 프레임 시작 시 행 주소가 항상 0으로 설정되기 때문에 제약이 있는 것처럼 보이지만, 테두리 시간을 조정하면 전체 문자 사이에 프레임 버퍼가 증가하도록 래스터 디스플레이에 표시될 수 있습니다.화면 가장자리에 빈 픽셀을 그리면 사용자가 이를 볼 수 없게 되어 부드러운 수직 스크롤과 같은 착각을 일으킬 수 있습니다.

「 」를 참조해 주세요.

외부 링크