PROAMIZHNY delirium. PART 2-I
(C) Odessoft
Amiga
05/05/1997 08:25:31
Hi ALL!
A small addition to the information Falcona on Amiga. In
fact, (From my point of view) Every self-respecting user,
hacker, etc. should at least briefly to understand the various
platforms (PC, MAC, AMIGA, etc.)
-------------------------------------------------- -------------
AMIGA 1200:
-------------------------------------------------- -------------
1. Description of the Amiga 1200
1.1. Sistemnye komponenty and interfeysy Amiga 1200
1.1.1. System components, the Amiga 1200 are:
1) Microprocessor Motorola 68EC020;
2) 2 8520 chip;
3) 3 so-called Custom chips: Alice, Lisa, Paula;
4) 2 ASIC-chip: Gayle and Budgie.
5) The keyboard processor Motorola 68HC05C MPU
If you do not take into account the memory and logic
components, then these 9 above chips are entirely responsible
for all the work the Amiga 1200:
1.1.2. Interfaces Amiga 1200
1: Parallel Bi-directional (Bi-directional) interface.
2: Serial RS-233C interface (speed / receive transfer
numbers up to 115 Kbps).
3: Stereo audio output (it should be noted that when
connecting
only one stereo channel, the other automatically podmeshi
is called to it, forming a single channel).
4: Connector for analog RGB-monitor (SVGA and Mu
ltisync included) and monitors with TTL inputs.
5: The yield on the composite monitor.
6: Output RF-Modulator PAL / NTSC to connect to your TV.
7: Connector for an external drive HD or DD (Shu
gart-bus compatible).
8: Two connectors for the mouse-type PC-BUS, joystick and
etc.
9: PCMCIA-2 - slot.
10: The so-called TrapDoor-slot (slot configuration)
11: Internal IDE - raz'em.
12: Internal raz'em to connect the keyboard.
1.2.2. CPU
--------------------------
Architecture 32-bit microprocessor MC68020 is a modernized
version of a family of microprocessors 32/16-bitnyh MC68000: It
retained full compatibility of native code, 68,020 but provides
more addressing modes, a small internal cache memory and
supports external control device memory (Memory Management unit
- or MMU).
In contrast to the 68,000 to 68,020 built a small cache and
conveyor system, which increases the speed of execution of
programs and the register set includes several additional
registers to support multi-tasking system.
Registers similar to registers 68020 68000, but the former
allows carry out not only operations on bits, BCD
numbers, byte, word (16 bits), long words (32 bits)
but also on the quad words (64 bits).
Eight data registers operate as 68,020 batteries
and seven address registers are involved for the base and index
addressing. Active at any time is one of the three stack
pointer, which is selected by setting bits in the status
register. In the 68,020 saved in two modes - supervisor / user.
If, for example, CPU runs in supervisor mode, which is
determined by setting the corresponding bit in the status
register, and interrupt occurs, the main stack is automatically
saved to the contents of the program counter, status register
and the displacement vector of a special occasion.
Vector base register is used for placement of tables
vectors in special cases a capacity of 1 KB in any area of
memory. Two register cache are used to manage cache
commands, such as its resolution or cleaning. Itself cache
consists of 64 elements of length 64 bits each, which include
the 32bit field tag.
The processor has an extensive set of addressing modes,
including register-indirect addressing with indexing and
scaling, as well as indirect addressing memory with pre-and
postindeksirovaniem. Like its predecessors, with 68,020 missing
the I / O, so they appear in the memory.
In the Amiga 1200 standard configuration used 68EC020
microprocessor with a clock frequency of 14 MHz, which has a
24-bit address bus and 32-bit data bus (ie address, only up to
16 MB). This address space is called the address space of the
Amiga Zorro-2: But accelerators based on more powerful
processors, 68030, and above already allow to organize the
address space to 4 GB (Amiga, this is called the address space
of Zorro-3).
On the advantages and disadvantages of the Motorola family
of processors 68K written entire books, so here they will not
discuss, However, I note that eight 32-bit general purpose
registers (excluding address), the linear addressing, the
diversity of its methods, and teams can get much more fast,
compact and efficient code than the family of processors Intel
x86.
1.2.3. Memory:
--------------------------
Standard in the A1200 put 2 megabytes Chip-Memory on the
motherboard, organized as 256K x 32 bit.
Memory in the Amiga can be of several types, for example,
Chip, Fast, Slow etc. All of these memory types include patches
(possibly with gaps) to the shared address space, and more the
initial system startup are determined and its location and
priority of use (marks autoconfiguration procedure - AUTOCONFIG
(TM)). Priority determines the order of selection chunks of the
operating system AmigaOS (it was she who knows memory
allocation, and allocates the right to request its number):
first a selection of buckets with the highest priority of use,
followed by their exhaustion comes the turn of others. You can
allocate memory as any, and specialized (eg, Chip, or Fast).
Actually, we consider more in detail the types of memory and
how they interact with components of the Amiga.
1.2.3.1. Chip-memory.
This - the main memory Amiga. It is the work of most channel
DMA (video, audio, blittera, copper-coprocessor disk, sprites),
ability to work and CPU (Priority access is regulated), but in
this case is hardware shutdown cache. That's Chip-memory is
placed on motherboards A1200 initially. Size and its
organization will be listed below.
1.2.3.2. Fast-memory.
It's available for the CPU and DMA channels
Zorro-3: in principle, the central processor owns it
completely, no one in that it does not interfere.
1.2.3.3. Slow-memory.
This memory may occur, for example, adding PCMCIAkartochki
memory. Access to it, too, will have a CPU, but when you work
with it off the cache, and its very performance very small.
1.2.3.4. Virtual-memory.
Organized by the presence of a special device in the CPU
memory management - MMU. Memory can be in the form of a file
either on a dedicated part of the hard disk. It can be either
fixed size or dynamically increase / decrease depending on
demand programs.
1.2.3.5. Other (other)-memory.
It is this concept combines and Fast and Slow and virtual
memory, since the division of memory on the Fast / Slow /
Virtual / ... hardware and operating system value have only a
priority, but the types of memory Other / Chip.
1.2.4. Amiga work with memory.
Standard A1200 comes with 2 MB of Chip-RAM. In fact,
good about that a little: not only is the cache of the
processor is blocked, but the CPU has access to it by default
with a lower priority than spetschipy. What a result get? The
machine actually starts to "slow down" for the poor processor
only, and does what is in queue for access rather than
execution of commands. And what is going on with the car
Fast-memory? Finally, the processor dayutrazognatsya in full
force, and he almost nobody prevents: special processor
operations in Chip-memory does not inhibit the CPU, and he
engaged in fulfillment of the basic logic of programs is
especially important with Given the fact that the operating
system used on the Amiga "Preemptivny" (preemptive) or
displacing the type of multitasking. In this case, the speed of
the CPU tests purely by increases in two times, and in fact the
real performance, based on multi-tasking operating system
AmigaOS grows even more.
1.3. Fundamentals of multitasking Amiga.
Multitasking (or multitasking) operating system is the
ability to perform multiple tasks at one and the same time. If
your computer has multiple processors, the problem may be
executed in parallel, otherwise - psevdoparallelno, dividing
among themselves the resources of one processor. Multi-tasking
system users enjoy the Amiga for the past 10 years, while on
other platforms yet debate: Is multitasking a useful feature
operating system.
You are probably already familiar with multitasking, but we
would like will explain some features of its implementation on
computers Amiga, because it largely determines their
opportunities.
1.3.1. Multi-tasking on the Amiga.
Kind of multitasking at the Amiga called preemptive
(preemptive) prioritized "carousel." Each task has a priority
assigned to it. The task which has the highest priority and is
ready for implementation, will be executed. The task can be in
one of three major states: dormant (sleeping), ready to run
(ready), or a running (running).
* Finished problem at present does not use central
processor, but expects it. Part of AmigaOS, called
"Exec", engaged in work with problems. It keeps a sorted
list of tasks that are ready to run. References
sorted according to the priority of the problem, so Exec can
easily find a ready task with highest priority.
* Dormant task is not executed at the present time and awaits
some event to start its work. When this event
occurs, Exec moves inactive task list
ready tasks.
* Execute tasks in currently uses a central
processor. It will be the current task until about
izoydet one of the following three events:
*** The problem, which has a higher priority becomes ready,
so that Exec replaces the current task and switches to a
more more high on the priority of the task.
*** Currently executing task must wait for events
Tia, so that before she began to act and Exec switch
is obtained to the highest on the priority of a task list
ready curves for execution.
*** Currently executing task owned by the central
processor within a certain period of time
Meaney, called quanta, and there is another problem of
equal
priority, ready to run. In this case, Exec displace
preserves the current task and switches to the next ready
task in the list having the same priority. This process
process known as time-slicing or "Carousel." When
there is a group of tasks of equal priority with respect
to the vertices Ny list of ready tasks, Exec will take
place cyclically
them, allowing each task to use the central processes
litter during the time slice.
The principle of preemptive prioritized "Carousel" is based
on these three positions.
1.3.2. The priority principle of multi-tasking
and cooperative multitasking.
Priority multitasking operating system tools can be a task
force to give the CPU to another task. Some operating systems
have a co-operative multitasking, mainly because they are - old
and their developers did not see a particular need for better
multi-tasking when he developed the operating system. An
example of such an OS can serve as MacOS. In cooperative
multitasking operating systems, the task can manage this
process, in other words, to fulfill others' functions.
1.3.2.1. Priorities.
When you run the task in AmigaOS have certain priorities.
Most user tasks have priority -1, 0 or 1: Tasks that require
your performance to the user tasks, such as device drivers have
priority 5: disk partitions Disk drives and have priority 10
and the highest priority - Usually 20, has "input.device" which
handles all input of a mouse and keyboard.
Priority range in AmigaOS is located in the interval from
-128 To 127: Negative priorities are typically used to
tasks that require the most CPU time
they may receive, for its execution, such as rendering
programs. As a general rule, you should not raise priority of
any task higher than the normal 3.
1.3.3. Different kinds of problems.
Tasks can be divided into two categories:
* Problems related to the exchange of information
(transput-bound
tasks)
* Problems associated with computations (compute-bound tasks)
Transput-related tasks are spending the most time waiting
for some event to start the run. Transput-related tasks can be
interactive or noninteractive. An example of an interactive
exchange of related problems - a text editor, he spends most
time to inaction, waiting for the next keystroke. Device
drivers - non-interactive tasks associated with the exchange.
Compute-related problems use so much CPU time as they can
get. Compute-related problem can also be interactive. An
example is a program that allows you to rotate
three-dimensional object on the screen with the mouse. Most
problems associated with calculations non-interactive, like the
program to render images or compiler.
The operating system AmigaOS tasks associated with the
calculations of the process name (process), and the problems
associated with the exchange of information - "tasks" (tasks).
Planning.
The purpose of planning sostoit to provide good service to
all the challenges that currently compete a computing resource,
that is to execute commands.
Different tasks have different requirements.
Personal computer like Amig'e usually has a non-interactive
exchange of related tasks associated with the interactive
sharing tasks and non-interactive tasks related to computing.
Different kinds of tasks, it is obviously necessary to provide
different working conditions:
* A consistent response times - interactive-related
exchange problems;
* A small response time - non-interactive-related exchange
dimensional problems;
* Good performance - the tasks related to computing
s.
Interactive associated with the exchange problem requires
immediate response to each event, otherwise the user will
experience inconvenience. If this is not possible, a consistent
response - better than a good average response. Response to a
keystroke, which is always about 2 seconds - better than the
answer which is an average of about 1 second, but sometimes
takes 10 seconds or just 0:5.
Non-interactive exchange of related tasks require fast
response to an event, because otherwise they would be too
delayed. For example, consider the task that computes for 1
milliseconds, and must then wait 20 milliseconds to events
start again performed. Let this be a repeat of 1000. The result
is that the problem will require a second computation, and 20
seconds of waiting and the total elapsed time will be 21
seconds. But if the task is delayed for half a second each time
it becomes ready, it will be executed is already 521 per
second. Small average delay would be preferable, even if some
delays will be longer. Average Delay for 1 millisecond would
allow the problem to end after only 22 seconds.
Compute-related tasks require a large amount of time
CPU, and overhead must
be minimal, that is, should minimize the number of switches
from task to task
Context switch in AmigaOS is faster than
than in the more "cool" operating systems. May be publicly
released Some context switching speed of problems for different
operating systems / computers:
26 microseconds 25MHz Amiga 4000/040, AmigaOS 3:1
106 microseconds 66MHz Snake, HP-UX 9: x
128 microseconds 40MHz Viking, SunOS 4:1:3
150 microseconds 25MHz Amiga 2000/030, AmigaOS 2:1
210 microseconds 33MHz PC AT 486, UNIX 386BSD 0:1
212 microseconds 50MHz RIOS, AIX 3:2
How to distinguish different kinds of problems?
To decide how he planned, the planner should first
distinguish the category, which owns a particular task. This
can be very difficult, because he can drift from
one category to another during its execution.
For example, a text editor - usually related to interactive
with the exchange problem, but when the user starts the search
and replace function, it can become an interactive task-related
calculations. When the editor saves the text to disk, it
becomes a non-interactive exchange of related task. This means
that the scheduler should adapt to different Situations in the
process of running tasks. The best planner will be the one who
can predict the future.
In constructing the scheduler common approach is to
prioritize each task and then change them in the process of its
execution. The most simple case - the scheduler, which reduces
the priorities, where the priority of a task decreases
continuously During the usage of CPU time, and the scheduler
performs first task with the highest priority. Operating
system, called "Multics" use this type of planner and as a
result has been found its main drawback: the heavily loaded
system with a large number of short tasks priority to the long
task may be reduced to such an point where it is available, or
very little, or no CPU time.
To avoid the problem of chronically low priority, their
need to raise some way. There are two main choices among
methodologies for improving:
- Based on raising event, and
- The aging of CPU utilization.
Based on the event is used to increase the deliberate
selection of interactive response on the tasks associated with
calculations, because the priority of the problem raised by
finding events such as keystrokes. This methodology assumes
that the problems are, or clearly associated with the
calculations, or clearly interactive (coupled with the
exchange), and for which interactive tasks - are more
important. Problem whose interactive work consumes a large
amount of time the processor can not work very well when using
this methodology. Scheduler of the operating system VAX / VMS
uses exactly this way.
The second methodology raise the priority - the aging of CPU
utilization. Scheduler that uses this methodology raises
priorities, gradually forgetting past CPU usage is usually at
an exponential rate. As a result, the scheduler, a measure of
CPU usage is exponentially weighted average with respect to the
lifetime problem. Simple exponential average take is not
desirable because in this case there is an unexpected side
effect of lifting priorities in the case when the system load
increases. This is because under higher load each
task uses less CPU resources, so the average use of its
falling, which causes an increase in priority. This effect
raised the priorities "may worsen the response system under
heavy load, because there is no problem can not accumulate a
sufficient amount of CPU utilization, in order to lower its
priority. Version 4:3 BSD UNIX solves this problem by making
the rate of aging dependent on the load average, so aging
occurs more slowly in the presence of a higher load storing the
priorities around the same range.
1.4. ROM:
-------------
It is no secret that most of the operating system AmigaOS
sewn into the ROM. And for the flexibility provided by a number
of special points, allowing, if necessary, replace or adjust
both small and large parts of the operating system. Minuses of
the ROM are clear: low mobility of the system and smaller than
the RAM, speed of execution of code. To overcome This provides
a complete replacement of the existing ROM appropriately in the
FAST-memory. Plus finding the system in ROM are also clear -
linear address space allows you to see it as part of the memory
and access it from anywhere, save space in RAM.
In the Amiga 1200 use:
- 512K Kickstart V3: 0 or V3: 1 - mask ROM, organized
as 128K x 32 bit;
- Also supports ROM size of 1 MB (256K x 32) and 2 MB
(512K x 32);
- Supported the installation FLASH ROM;
[Crumbled]
.4. * - Standard Modes AGA:
---------------------------
Name Resolution Interlace Monitor
------------ ----------- ---------- ----------------- -
1024x1024 A2024 need a professional. Monitor
640x200 NTSC HIRES
640x400 * NTSC HIRES Laced
320x200 NTSC LORES
320x400 * NTSC LORES Laced
400x150 Multisync monitor.
800x150 Multisync monitor.
400x300 Multisync monitor.
400x600 * Multisync monitor.
800x300 Multisync monitor.
800x600 * Multisync monitor.
640x256 PAl HIRES
640x512 * PAL HIRES Laced
320x256 PAl LORES
320x512 * PAl LORES Laced
640x240 Multiscan LORES Multisync SVGA or
640x480 Multiscan Multisync SVGA or
1280x200 NTSC SHRES
1280x256 PAL SHRES
1280x400 * NTSC SHRES Laced
1280x512 * PAL SHRES Laced
AA Gayle
---------
Chip AA GAYLE with small changes, save the legacy
from the Amiga 600 and is working with Alice. Function AA GAYLE
very diverse, for example, he is responsible for creating
addresses access to the IDE interface, the generation of
signals PCMCIA, used when the ROM, CPU and other components.
BUDGIE
-------
BUDGIE chip serves as the main element of the data paths in
the Amiga 1200: That it provides an interface between the
32-bit bus Data of the CPU and 32-bit bus Chip-memory
generates sampling signals RAS and CAS from the time signals
RAS and CAS, supported by Alice. It also provides a buffer
which can be used for the external bus, or as a buffer
Data Interface PCMCIA. BUDGIE also performs many other
various functions, such as CPU clocks
on the motherboard Amiga 1200.
The internal construction of data paths in BUDGIE very
similar to similar to the chip BRIDGETTE (this chip provides a
buffer and bus bridge between the data path in the Amiga 4000).
Data can be sent to / from 32-bit port of the CPU on any of the
half 32-bit bus Chip-RAM. Data can be transferred from
the younger half of the bus Chip-memory in its upper half to
support 16-bit modes Amigovskih chips, as well as an IDE and
PCMCIA.
[Crumbled]
1.8.1. PCMCIA - slot.
-------------------
68-pin PCMCIA-slot of the Amiga 1200 compliant
2:0 at the interface.
To it is possible to connect:
1) standard PCMCIA-devices, they include: modems,
scanners, memory cards, network cards, etc.;
2) designed specifically for the Amiga: Controllers SCSI,
SCSI-2
IDE / ATA drives and ATAPI CD-ROMs, network cards,
ISDN-card 16-bit audio and 24-bit video card, etc.
1.8.2. Expansion Slot (Trapdoor - slot):
---------------------------------------
150-pin Trapdoor-slot is specifically designed to extend the
architecture of the Amiga. It is designed to connect cards
FAST-memory, math co-processors, real-time clock, accelerator
(accelerator) processors 68020, 68030, 68040, 68060, by the
summer of 1997 will have many new cards based on processors
PowerPC, SCSI-2 controllers, DSP-processors, network cards and
other devices. It is interesting to note that in the case
setting accelerator, the processor on the motherboard Amiga
hardware is disabled and she begins to serve the video
controller and input / output devices relative to the
accelerator.
The accelerator typically installed real time clock, CPU,
FPU, memory-based 72-pin Sims its ROM and a special slot for
further expansion architecture, for example, to connect SCSI-2
controller and maps Full Motion Video.