= Introducción a la Arquitectura ARM = === Estructura Básica de una Computadora === === Buses - Arquitectura de Buses === ¿Qué es un bus? Es el medio de comunicación que utilizan los diferentes componentes del procesador para intercambiar información entre sí, eventualmente los buses o una parte de ellos estarán reflejados en los pines del encapsulado del procesador. Dentro de un bus se distinguen 3 canales: * Dirección: Se utiliza para seleccionar al dispositivo con el cual se quiere trabajar o en el caso de las memorias, seleccionar el dato que se desea leer o escribir. * Datos * Control: Se utiliza para gestionar los distintos procesos de escritura lectura y controlar la operación de los dispositivos del sistema. Von Neumann [de Wikipedia: http://en.wikipedia.org/wiki/Von_Neumann_architecture ] The von Neumann architecture is a design model for a stored-program digital computer that uses a processing unit and a single separate storage structure to hold both instructions and data. Harvard [de Wikipedia: http://en.wikipedia.org/wiki/Harvard_architecture ] The Harvard architecture is a computer architecture with physically separate storage and signal pathways for instructions and data. === Mapa de Memoria === ¿Qué es el mapa de memoria? Tal vez más correctamente denominado espacio de direcciones de la CPU. Comprende el conjunto de todas las diferentes direcciones que puede generar la CPU. === Registros === ¿Qué es un registro? Es un espacio de memoria reducido, en general del tamaño de una palabra (según la arquitectura puede ser 8,16,32... bits) que utiliza la CPU para mantener una copia temporal de los datos que está procesando. Existe otra categoría de registros, llamados registros de configuración, cuyos bits se utilizan para controlar el comportamiento de algún elemento o periférico del sistema. === Instrucciones === ¿Qué son las instrucciones? Las instrucciones son el conjunto de operaciones que puede realizar la CPU para operar con los datos o controlar el sistema. === CISC - RISC === De ARM Architecture Reference Manual (A1.1) The ARM is a Reduced Instruction Set Computer (RISC), as it incorporates these typical RISC architecture features: * a large uniform register file * a load/store architecture, where data-processing operations only operate on register contents, not directly on memory contents * simple addressing modes, with all load/store addresses being determined from register contents and instruction fields only * uniform and fixed-length instruction fields, to simplify instruction decode. In addition, the ARM architecture provides: * control over both the Arithmetic Logic Unit (ALU) and shifter in most data-processing instructions to maximize the use of an ALU and a shifter * auto-increment and auto-decrement addressing modes to optimize program loops * Load and Store Multiple instructions to maximize data throughput * conditional execution of almost all instructions to maximize execution throughput. El !ARM7TDMI-S Technical Reference Manual dice del microprocesador: (1.1) The ARM architecture is based on Reduced Instruction Set Computer (RISC) principles. The RISC instruction set, and related decode mechanism are much simpler than those of Complex Instruction Set Computer (CISC) designs. This simplicity gives: * a high instruction throughput * an excellent real-time interrupt response * a small, cost-effective, processor macrocell. === Excepciones: === ¿Qué es una excepción? Son sucesos inesperados o asincrónicos que alteran el flujo del programa. === Breve Reseña Histórica === === Familias de núcleos ARM === There are currently eight product families which make up the ARM processor range: * Cortex Processor Family * [[http://www.arm.com/products/CPUs/families/ARM7Family.html | ARM7 processor family]] * ARM9 processor family * !ARM9E processor family * !ARM10E processor family * ARM11 processor family * !SecurCore processor family Further implementations of the ARM architecture are available from our Partners such as the Intel® XScale™ microarchitecture The ARM7 processor family includes the following processors : * !ARM7TDMI * !ARM7TDMI-S * !ARM7EJ-S The ARM7 processors are the most widely shipped processors in the world and the licensees include || Accent || Infineon Technologies || Qualcomm || || AMI Semiconductor || Intel Corporation Intellon Corporation || Rohm || || Analog Devices Inc. || Intrinsix Corporation || Samsung Electronics || || Atmel Corporation || iSine || Sanyo || || Broadcom Corporation || Industrial Tech Research Institute || Seiko Epson || || Canadian Micro Corporation || Kawasaki Microelectronics || Shanghai Fudan || || Chartered Semiconductor || LSI Logic || Shanghai Intergrated Circuit Research Center (ICC) || || Cirrus Logic || Matsushita || Sharp || || Conexant Systems Inc. || Mediatek || Shenzhen State Microelectronics (SMIT) || || Dialog Semiconductor || Micronas || SiRF Technology || || DSPG || National Asic CRC (SEU) || Silicon Integrated Systems Corp. || || eSilicon Corporation || NEC Electronics || Skyworks || || Flextronics || Neo Magic Corporation || SMIC Corporation || || Freescale Semiconductor || nVIDIA || Socle Technology Corp || || Fujitsu || NXP || Sony || || Global Unichip Corporation || OKI || Spreadtrum Communications Inc . || || Hong Kong Science and Technology Parks || Oxford Semiconductor || || Huawei Technologies || Pixim || STMicroelectronics || || INDILINX || Phoenix Microelectronics || Texas Instruments || || Toshiba || UMC || Verisilicon || || Via Telecom/Via Technology || Winbond Electronics Corp. || Xi'an Huaxun || || Yamaha Corporation || Zarlink Semiconductor || Zoran Corporation || === Registros de la CPU !ARM7TDMI-S === The ARM processor has a total of 37 registers: * Thirty-one general-purpose registers, including a program counter. These registers are 32 bits wide and are described in General-purpose registers on page A2-6. * Six status registers. These registers are also 32 bits wide, but only some of the 32 bits are allocated or need to be implemented. The subset depends on the architecture variant supported. Registers are arranged in partially overlapping banks, with the current processor mode controlling which bank is available, as shown in Figure A2-1 on page A2-5. At any time, 15 general-purpose registers (R0 to R14), one or two status registers, and the program counter are visible. Each column of Figure A2-1 on page A2-5 shows which general-purpose and status registers are visible in the indicated processor mode. {{attachment:registrosARM7.png | "registrosARM7.png" | width='458' ,height='482' }} === Instrucciones !ARM7TDMI-S === The ARM instruction set can be divided into six broad classes of instruction: (ARM Architecture Reference Manual A1.2) * [[ASMIntroduccionARM#Instrucciones_de_Salto|Branch instructions]] * [[ASMIntroduccionARM#Instrucciones_de_Procesamiento_d|Data-processing instructions ]] * [[ASMIntroduccionARM#Instrucciones_de_transferencias|Status register transfer instructions ]] * [[ASMIntroduccionARM#Instrucciones_de_Carga_y_escritu|Load and store instructions ]] * Coprocessor instructions * [[ASMIntroduccionARM#Instrucciones_para_la_generaci_n|Exception-generating instructions ]] === Microcontroladores con Núcleos ARM === ¿Qué es un microcontrolador? Un microcontrolador es en sí mismo una computadora, posee los bloques escenciales que definen estos elementos, CPU, Memoria y Unidades de Entrada-Salida. Lo diferencia de una PC de escritorio u otras clases de computadoras el hecho de que todos estos elementos se encuentran fundidos sobre la misma oblea de silicio y contenidos en un mismo encapsulado. === Microcontrolador LPC2114 === {{attachment:bloquesLPC2114.png | "bloquesLPC2114.png" | width='630' ,height='710' }}