데이터 버퍼

Data buffer

컴퓨터 과학에서 데이터 버퍼(또는 그냥 버퍼)는 데이터가 한 장소에서 다른 장소로 이동하는 동안 일시적으로 데이터를 저장하는 데 사용되는 메모리의 영역이다.일반적으로 데이터는 입력 장치(마이크로폰 등)에서 검색되거나 출력 장치(스피커 등)로 전송되기 직전에 버퍼에 저장된다.그러나 컴퓨터 내의 프로세스 간에 데이터를 이동할 때는 버퍼를 사용할 수 있다.이는 통신의 버퍼에 버금간다.버퍼는 하드웨어의 고정 메모리 위치에서 구현하거나, 물리적 메모리의 위치를 가리키면서 소프트웨어에서 가상 데이터 버퍼를 사용하여 구현할 수 있다.모든 경우에, 데이터 버퍼에 저장된 데이터는 물리적 저장 매체에 저장된다.대다수의 버퍼는 하드 디스크 드라이브에 비해 훨씬 빠른 액세스 시간 때문에 일반적으로 임시 데이터를 저장하는 데 더 빠른 RAM을 사용하는 소프트웨어에 구현된다.버퍼는 일반적으로 데이터를 수신하는 속도와 처리할 수 있는 속도가 다를 때 또는 이러한 속도가 가변적인 경우(예: 프린터 스풀러 또는 온라인 비디오 스트리밍)에 사용된다.분산 컴퓨팅 환경에서 데이터 버퍼는 분산 버퍼링 서비스를 제공하는 버스트 버퍼 형태로 구현되는 경우가 많다.

버퍼는 종종 메모리에 (또는 FIFO) 알고리즘을 구현하고 동시에 데이터를 큐에 기록하고 다른 속도로 읽음으로써 타이밍을 조정한다.

적용들

버퍼는 디스크 드라이브, 네트워크로 데이터를 송수신하거나 스피커로 소리를 재생하는 등 하드웨어 I/O와 연계해 사용하는 경우가 많다.놀이공원에 있는 롤러코스터의 줄은 많은 유사점을 공유한다.코스터를 타는 사람들은 알 수 없고 종종 변화무쌍한 속도로 들어오지만, 롤러 코스터는 (코스터가 도착하여 적재함에 따라) 폭발로 사람들을 적재할 수 있을 것이다.대기열 구역은 완충장치 역할을 한다. 즉, 타기를 원하는 사람들이 탈 수 있을 때까지 기다리는 임시 공간이다.버퍼는 보통 FIFO(first in, first out) 방식으로 사용되며, 도착한 순서대로 데이터를 출력한다.

버퍼는 하드웨어 인터럽트가 물리적 디스크 서브시스템에 액세스하기를 기다리는 동안 차단하는 대신 파일 읽기나 쓰기 같은 동기식 작업을 빠르게 완료하도록 허용함으로써 애플리케이션 성능을 높일 수 있으며, 대신 운영체제는 API 호출에서 성공한 결과를 즉시 반환하여 애플리케이션을 계속 진행할 수 있게 한다.커널이 백그라운드에서 디스크 작업을 완료하는 동안 처리.애플리케이션이 디스크 서브시스템의 블록 크기에 해당하지 않는 작은 데이터 블록을 읽거나 쓰는 경우, 버퍼로 많은 작은 읽기 또는 쓰기 작업을 디스크 서브시스템에 더 효율적인 블록 크기로 집계하거나, 때로는 읽기, 컴플라이언스로 통합할 수 있는 경우에 추가적인 이점이 달성될 수 있다.디스크에 물리적으로 접근하는 것을 피해야 한다.

통신 버퍼

통신에 사용되는 버퍼 루틴이나 저장 매체는 한 장치에서 다른 장치로 데이터를 전송할 때 데이터의 흐름 속도나 사건 발생 시간의 차이를 보상한다.

버퍼는 다음을 포함한 다양한 용도로 사용된다.

  • 서로 다른 속도로 작동하는 두 디지털 회로의 상호 연결,
  • 나중에 사용하기 위해 데이터를 보관하는 중,
  • 데이터 스트림에서 타이밍 보정을 허용한다.
  • 2진수 데이터 비트를 그룹으로 수집하여 유닛으로 작동할 수 있다.
  • 다른 작업이 수행될 수 있도록 신호의 전송 시간 지연

  • CONFIGBUFFERS 명령/설명.도스SYS.
  • 직렬 포트(UART)와 모뎀 사이의 버퍼.COM 포트 속도는 38400비트/s일 수 있고 모뎀은 14400비트/s 반송파만 있을 수 있다.
  • 하드 디스크 드라이브, 프린터, BD/DVD/CD 드라이브 또는 기타 하드웨어의 통합 버퍼.
  • 비디오 카드의 프레임 버퍼.

역사

인쇄 버퍼에 대한 초기 언급은 이미지 처리의 선구자인 러셀 A가 고안한 "아웃사이버"이다.1952년 SEAC 컴퓨터용 Kirsch:[1]

자동 디지털 컴퓨터의 설계에 있어서 가장 중요한 문제 중 하나는 계산의 추가 진행을 지연시키지 않을 수 있을 정도로 계산된 결과를 기계에서 신속하게 빼내는 것이다.범용 컴퓨터가 적용되는 많은 문제에서 출력 데이터의 양은 상대적으로 커서 컴퓨터가 이러한 데이터가 기존 인쇄 장치에 입력되기를 기다리도록 하는 심각한 비효율성이 초래될 수 있다.이 어려움은 SEAC에서 자기 기록 장치를 출력 단위로 제공함으로써 해결되었다.이 장치들은 전기 타자기가 작동할 수 있는 속도보다 최대 100배 빠른 속도로 기계로부터 정보를 수신할 수 있다.따라서 출력 데이터를 기록함에 있어 더 나은 효율을 얻을 수 있다; 전사는 나중에 메인 컴퓨터를 묶지 않고도 자기 기록 장치에서 인쇄 장치로 만들 수 있다.

참고 항목

참조

  1. ^ "SEAC Maintenance Manual: The Outscriber" (PDF). National Bureau of Standards Report. 2794. July 1953.