Arm INTRODUCTION
Arm INTRODUCTION
Are two or three specialized microprocessors talking to graphics engines, floating-point units, energy management
units
HISTORY OF RISC
Reduced instruction set computers(RISC)
Complex Instruction Set Computers(CISCs) Fixed =fijo
Using instructions that had different lengths, supporting complex, multi-cycle instructions, these
produce a processor that had the following characteristics: Whithin = dentro
☺ All instructions executed in a single cycle. Making it easier for a programer, but it was more
complicated to design the hardware.
☺ All instructions were(eran) the same size and had a fixed format, 2 bytes, 4bytes. This made it
very difficult for a processor to decode(decodificar) the instructions that got passed through it
and ultimately executd.
☺ Instructions were very simple to decode. The register number needed for an operation could
be found in the same place whitin most instructions. Having a small number of instructions
also meant that fewer(adj. menos) bits were required to encode the operation.
☺ The processor contained no microcode. One of the factors that complicated processor disign
was the use of microcode, which was a type of "software" or commands within a processor
that controlled the way data moved internally.
☺ It would be easier to validate these simpler machines. CISC architectures becames very Tracts = tratados
difficult to debug and validate.
☺ The processor would access data from external memory with explicit instructions - load and
store. All other data operations, such as adds, sub tracts. And logical operations, used only Growth = crecimiento
Increase = incrementar
registers on the processor. This differd from CISC architectures where you were allowed to tell
the processor to fetch(extraer) data from memory, do something to it, and then write it back Moniker = apodo
to memory using only a single instruction. This war convenient for the programmer, and Buried = enterrado
especially useful to compilers, but arduous for the processor designer. Underneath = debajo
Albeit = aunque
☺ For a typical application, the processor would execute more code. Program size was expected
to increase because complicated operations in older architectures took more RISC instructions
to complete the same task.
The novel(original) idea of a RICS architecture was that by making the operations simpler, you
could increase the processor frequency to compensate for the growth(crecmiento) in the
instruction count.
The original ARM1 was designed to run at 4MHz (note that this is three orders of magnitude slower). Subsequent
revisions to the architecture produced the ARM2
This microprocessor achieved a typical clock speed of 12 MHZ in a 2 micron process.
The Cortex-R cores (R4,R5, AND R7) are designed for those applications where real-time and/or safety contraints play a
mejor role.
Power monitoring
Remote sensors
Robotics
And can be programmed quickly
Nested Vectored Interrupt Controller(NVIC)
Small instruction set(only 56 instructions)
Th stored-program computr, as it is called, Fetches a sequence of instructions from memory, along with data to be
used for performing calculations.
Assembly language programming is the use of the most funfamental opeations of the processor, written in a way that
humas can work with then easily.
The classic model for a computer also shows typical interfaces for input/output (I/O) devices,
We can specify how we want data to be processed, how we want memory to be controlled, and how we want outside
events such as interrupts to be handled.
The binary number system, therefore(por eso), lends(prestar) itself to use in computer systems more
easily than base ten numbers.
Unsigned representations make the assumption thata every bit signigies a positive contributions to the value of the
number.
Signed representations make the assumption that the most significant bit is used to create positive and negative values,
and they come in three flavors(sabores):
☺ sign-magnitude, Flavors = sabores
☺ one´s complement
☺ two´s complement
Sign-magnitude is the easist to undestand, where the most significant bit in the number represents a sign bit and all
other bits represent the magnitude of the number.
A one in the sign bit indicates the number is negative and a zero indicates it is positive.
0ne´s complement numbers are not used much in modern computing systems either, mostly because there is too much
To create a negative value in this representation, simply invert all the bits of its positive, binary value.
Arise = SURGIR
The sign bit will be a 1, just like sign-magnitude reprsentations, but there are two issues that arise when
The first is that you end up with two representations for 0.
And the second is that it may be necessary to adjust a sum when adding two values together, causing extra work for the
processor.
Two´s complement
Representations are easier to work with, but it´s important to interpret then correctly. As with the other two signed
representations, the most significant bit represent the sign bit. However, int two´s complement, the mostsignificant bit
is weighted(ponderado), which means that it has the same magnitude as if the bit were in an unsigned representation.
The IEEE 754 specification of 1985 formally defined a 32-bit data type called single-precision. These floating-point
numbers consist of an exponent, a fractions, a sing bit , and a bias. For nomal numbers, and here "normal" is difined in
the specification, the value of a single-precision number F is given as
has the value 0.5, the next bit has the value 0.25, and so on. To ensure all exponents are positive numbers, a bias b is
added to the exponent e. For single-precision numbers, the exponent bias is 127.
The IEEE 754 estándar also specifies a 64-bit, double-precision format that has a range of +- 2.2*10^(-308) to
1.8*10^(+308). Single precision provides typically 6-9 digits of numerical precision, while double precision gives 15-17.
Pattern = patrón
1.5.3 CHARECTER REPRESENTATIONS Instead = en lugar
Bit patterns(patrón) can represent numbers of charactets, and the interpretation is based entirely on context.
Using character data in assembly language is not difficult, and most assemblers will let you use a character in the
program without having to look up the equivalent haxadecimal value in a table. For example, instead(en lugar) of sayins
All instruction sets have some common operations, and learning one instruction set will help you undestand nearly any
of them. The instructions thenselves can be of different lengths, depending on the processro architecture-8,16 or 32 bits
long, or even a conbination of these.
A particular bit pattern is mapped onto an instruction name, or a mnemonic, so that instead of reading
E0CC31B0
1AFFFFFF1
E3A0D008
The programmer can read:
STRJ SUM, [pointer], #16
BNE Loop_one
Expects = espera
MOV Count, #8 Pattern = patrón
EXAMPLE 1.11
Conseder the bit pattern for the instruction above:
MOV count, #8
The pattern is the hex number 0xE3A0D008 From figure you can see that the ARM processor expects parts of our
instruction in certain fields-the number 8, for example, would be placed in the field called 8_bit_immediate,
And the instruction itself, moving a number into a register, is encoded in the fielf called opcode. The parameter called
count is a convenience that allows the programmer to use names instead of register number. So somewhere in our
program, count is assined to a real register and that register number is encoded into the field called Rd.
Near = cerca
As with most programming tasks, wi also need an automated way of tranlating our assembler language instructions into
bit patterns, and this is precisely what an assembler does, producing a file that a piece of hardware can undestand.
We can give the assemble some pseudo-instructions, or directives,that tell it how to to its job, provided that we follow
the particular assembler´s rules such as spacing, sintay, the use of certain markers like commas.
The debugger proviedes access to register on the chip, views of memory, and the ability to set and clear break-point and
watchpoint, which are methods of stopping the processor on instruction or memory accesses, respecively.