Un disco duro o disco rígido (en inglés hard disk drive) es un dispositivo de almacenamiento no volátil, que conserva la información aun con la pérdida de energía, que emplea un sistema de grabación magnética digital; es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. Dentro de la carcasa hay una serie de platos metálicos apilados girando a gran velocidad. Sobre los platos se sitúan los cabezales encargados de leer o escribir los impulsos magnéticos. Hay distintos estándares para comunicar un disco duro con la computadora; las interfaces más comunes son Integrated Drive Electronics (IDE, también llamado ATA) , SCSI generalmente usado en servidores, SATA, este último estandarizado en el año 2004 y FC exclusivo para servidores.
Tal y como sale de fábrica, el disco duro no puede ser utilizado por un sistema operativo. Antes se deben definir en él un formato de bajo nivel, una o más particiones y luego hemos de darles un formato que pueda ser entendido por nuestro sistema.
También existe otro tipo de discos denominados de estado sólido que utilizan cierto tipo de memorias construidas con semiconductores para almacenar la información. El uso de esta clase de discos generalmente se limitaba a las supercomputadoras, por su elevado precio, aunque hoy en día ya se puede encontrar en el mercado unidades mucho más económicas de baja capacidad (hasta 512 GB) para el uso en computadoras personales (sobre todo portátiles). Así, el caché de pista es una memoria de estado sólido, tipo memoria RAM, dentro de un disco duro de estado sólido.
Su traducción del inglés es unidad de disco duro, pero este término es raramente utilizado, debido a la practicidad del término de menor extensión disco duro (o disco rígido).
En los ultimos años se distinguen dos grandes tendencias en la construcción de procesadores. Se diferencian esencialmente en las características de su repertorio de instrucciones.
- Los procesadores CISC (Complex Instruction Set Computer) tienen un repertorio con un número de instrucciones alto (200-300); estas instrucciones además son más complejas que las de RISC, con lo que la circuitería necesaria para decodificación y secuenciación también aumenta, y la velocidad del proceso disminuye. Como ventaja, tenemos que se necesitan menos instrucciones para ejecutar una tarea. Además, el formato de las instrucciones es bastante variable (es decir, hay bastantes formatos). Además, el diseño hace que el procesador tenga que realizar constantes accesos a memoria.
- Los procesadores RISC (Reduced Instruction Set Computer) tienen características opuestas a los CISC. Su juego de instrucciones es más reducido (menos de 128), y las instrucciones son más sencillas (con lo que se necesitarán más instrucciones para ejecutar una tarea). El formato de instrucciones es fijo (o serán pocos formatos), con lo que el control del hardware es más sencillo y se facilita la colocación de las instrucciones en la memoria, lo que implica que los accesos a la memoria se aceleren. Por otra parte, estos accesos a memoria son menos frecuentes ya que el procesador posee un mayor número de registros. Estos procesadores son los que están presentes en las estaciones de trabajo. Como ejemplos podemos citar los procesadores ALPHA de Digital Equipment, y los SuperSPARC y MicroSPARC de Sun Microsystems y Texas Instruments.
Relacionada con los conceptos RISC y CISC está la técnica de segmentación ("pipeline"); esta técnica consiste en dividir la ejecución de la instrucción en bloques independientes que se ejecutan en paralelo. Es más eficiente para los procesadores RISC, aunque también se implementa en CISC. Para incrementar el rendimiento del procesador se debe bucar instrucciones ejecutables en paralelo. El sistema de carga de instrucciones debe analizar la secuencia de instrucciones que entran al procesador y buscar instrucciones ejecutables en paralelo asi como diseñar un control que tenga en cuenta posibles dependencias de datos entre las instrucciones a ejecutar en paralelo. Esto hace que el hardware empiece a complicarse
Otro tipo de procesadores emplean un conjunto de instrucciones diseñadas "ad hoc" para explotar el paralelismo del hardware que disponen en su interior, son los procesadores VLIW ( Very Long Instruction Word). Una instrucción VLIW es empaquetada en una palabra muy larga por el compilador, incluyendo varias (de 4 a 8) instrucciones elementales. Esta palabra larga se corresponde con el formato adecuado para controlar en paralelo todas las unidades funcionales. De tal manera que toda la instrucción larga equivale a 1-8 instrucciones elementales que se ejecutan simultáneamente. En este tipo de procesadores la complicación de buscar el paralelismo entre instrucciones y sus dependencias se pasan al compilador. El inconveniente es que el compilador se hace mas complejo.