Port-pc532 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

NetBSD with IDE drive is running !



Hi,

NetBSD has booted on my PC532 emulation with a 2,5 inch IDE disk drive. I'm 
very impressed about how easy it was to get NetBSD 
running. I used "disklabel" , "bim" and "newfs" to create the filesystem. After 
mounting the root partition I downloaded 
base.tgz, kern.tgz and etc.tgz. I installed them and modified fstab with sed to 
my disk configuration.

Jon Buller gave me the hint to do "MAKEDEV all". Then I started the ROM monitor 
and this time I typed in "boot"  ... and it 
happend ! Great moment ! The system started in single-user mode. I only needed 
to set the root partition to read/write because 
it was read-only. Downloading man.tgz and comp.tgz , writing the first C 
program with vi , compiling the program and running it 
was just fun. The only remaining problems were caused by vi. This program uses 
vt100 terminal codes which were not yet included 
in my host software. Now it looks ok.

I had expected to do a lot more things before I can use the system. But 
everything is configured right from the beginning. Every 
path was ok. This software is perfect for a beginner like me. Some people did a 
great job and many thanks to them for the 
experience.

The IDE drive has 160 GB capacity but I used only 1.5 GB for NefBSD. I think it 
is enough for the moment. The next task will be 
compiling a kernel. The name will be LASTHERO (Maybe not everbody will like the 
LAST ...) The only things I will modify at first 
are some messages and the scsi device list. I heared about some very long 
compilation times. Therefore I'm curious to see what 
will happen.

After successfully compiling the kernel I want to learn more about the 
internals of NetBSD. First step will be creating my own 
real time clock. I will replace the DS1216 used in the PC532 by FPGA logic 
which shall have a simpler access schema. I choose 
the real time clock because it wil not create any risk for my disk drive if 
something goes wrong (hopefully).

But I can not avoid risks. I want direct IDE drive access without host 
interaction. In the sys source tree I found a directory 
called "ata" . The software in there accesses an IDE drive. My hope is that I 
can use this code with minor changes instead of 
the SCSI code.  Do I hear some laughing ? Ok, if I'm too optimistic about this 
task please let me know.

Another very usefull stuff is USB. It is not a problem for my FGPA to access 
USB 1.1 directly. There is no need for a physical 
interface chip. And software seems to be there again. A USB memory stick would 
be perfect for backup and file transfer. But it 
will take away time from another project which is more important.

Building a NS32632.

It is easy to guess what it is : the combination of the NS32532 and NS32381 in 
one chip. And the chip will be a FPGA. There are 
three reasons why I want to do this :

1. Todays FPGAs are powerful and cheap. You can create any kind of digital 
function. They have big memory ressources on chip and 
contain dedicated multiplier hardware. All this is required for a complex 
processor with caches and floating-point support in 
hardware. And you can modify FPGA configuration as often as you want. This is 
absolutly necessary because a complex design will 
have bugs.

2. I made a very surprising experience with my own NS32K system in the 
beginning of 2007. I wanted to play MP3 songs on my 
hardware which contains an AC97 audio interface. Richard looked in the internet 
for an open-source decoder and he chooses amp 
for this purpose. He crosscompiled the C-code on a PC and I assembled the *.s 
files on my system. One of the first tests was 
"Smoke on the water" live from Deep Purple. This piece of music lasts 7:29 min. 
The decoder creates a 78 MB WAV-file. And the 
job took 79:14 min. What a shock ! More than 10 times slower compared to real 
time. After some investigations it was clear that 
the floating point power of the NS32532/NS32381 combination is not enough. The 
gnu compiler did a great job with all the 
optimizations and creates long strings of floating point opcodes without loops 
to speed things up. But it was not enough. The 
communication protocol between the CPU and the FPU needs too many clock cycles. 
After this great disappointment the idea was 
born to create one day a NS32632 which has 10 times more floating point power.

3. I love the NS32000 architecture. In my opinion it is the best designed of 
all. I started in 1985 with a small NS32016 system 
designed by myself. But one day the last CPU will be broken and this elegant 
architecture will simply disappear. To avoid this 
fate an open-source implemantation is the best countermeasure. My plan is to 
bring the NS32632 to www.opencores.org and maintain 
it there. This CPU should be interesting also for other people because in a 
FPGA implementation you can add new instructions and 
coprocessors for special tasks. Maybe one day somebody created even a 64 bit 
version (I would prefer redefining the 16 bit 
operands as being 64 bit because 16 bit is not used very often. But this is 
very, very far off in the future).

Some words about the FPGA implementation : don't expect hundreds of megahertz ! 
First I will keep the desgin simple, i.e. not 
many pipeline stages. Second, the logic and memory inside the FPGA is fast. But 
the interconnect is not fast : it must be 
programmable (switches) and the wires are much longer compared to an ASIC 
design. My target speed is 25 MHz , but I will use 
only one clock cycle for the simple reg-reg operations. Because of the MP3 
requirements I will try to achieve even one clock 
cylce for ADDF reg,reg and MULF reg,reg . Inside the FPGA is enough memory 
available to create a cache subsystem with 4 KB each 
for instruction and data. You can imagine that I'm very, very curious about the 
first amp5 run ...

I started the design of the NS32632 in August 2009. I have put some top level 
schematics in the attachement. They are taken out 
of the development system from Altera which is available in the web free of 
charge. After designing some months I needed a 
break. I came to a point where I have to think first and then to implement. 
Richard and myself were curious about NetBSD for 
quiet a long time and therefore we decided to put some effort in it to get it 
running on my system. Maybe the break will be a 
little longer than expected but I believe that NetBSD will be very helpful in 
debugging the NS32632. If it runs NetBSD like the 
NS32532 the design should be free of simple bugs.

The next logical step is to create a hardware platform. My current one is a 
collection of multiple pcb's. But it should be only 
one pcb and I will design it. The FPGA family of choice is the Cyclone III of 
Altera. The big devices in this family have all 
the same BGA footrpint and therefore the user has the choice between 
capabilities and price. You can get 40.000 logic elements 
(LEs) for 90 US$ or up to 120.000 LEs for 500 US$ with other choices in 
between. Price also depends on the speed of the FPGA 
like it is for PC processors. For more information look at www.altera.com and 
see "Buy Online". (I do not work for Altera. I 
only use their FPGAs for many years)

My expectation is that a NS32632 will need not more than 15.000 LEs. And this 
is very interessting because you can put multiple 
cores in one FPGA ! Performance will not come from high clock rates but out of 
parallelism. The biggest FPGA in the Cyclone III 
family will easily hold four cores and a lot of glue logic. Is NetBSD 1.5.3 
ready for multiprocessing ? Hopefully yes ! Does 
anybody has access to a Quickturn emulator ? This machines are full of big 
FPGAs and so they are perfect platforms to create a 
NS32K supercomputer ... :-)

I think that the name of the new hardware platform should  be very similar to 
what we have already : PC632. My dream is to have 
a system in the living room used as a DVR . One CPU is doing MPEG2 transport 
stream decoding , the other CPU is doing the audio 
decoding and some logic is doing the video decoding. And because it is running 
NetBSD, it can browse the internet. And because 
of the NS32632 CPU it will be the most secure system in the world ...

Regards,
Udo
___________________________________________________________
WEB.DE DSL: Internet, Telefon und Entertainment fÃr nur 19,99 EUR/mtl.!
http://produkte.web.de/go/02/

Attachment: Print_dp.pdf
Description: Adobe PDF document

Attachment: Print_cache.pdf
Description: Adobe PDF document

Attachment: Print_top.pdf
Description: Adobe PDF document



Home | Main Index | Thread Index | Old Index