Older blog entries for Michael (starting at number 31)


My process simulator is coming along nicely, and I actually documented some of it today :) I've been adlibing data structures in Python, and thought I'd better document what it all means somewhere :)


I keep playing a little with BeOS. I have the personal version installed on my workstation. I just can't really get into it, and I'm trying to decide if it's BeOS or I'm just too set in my ways. I tend to rely on having quick access to a hetrogenous network of machines at my fingertips and random files spaces spread about on other machines. Between network transparency in X and automounted nfs drives I no longer tend to think in terms of just one machine, I just tend to run processes where they're appropriate. Thus when I switch to Windows or BeOS I suddenly find myself feeling straight jacketed.

Is it just me? I have friends who try to convince me that other stuff is better, and while I admit my X setup is server steps behind in evolution (ha), it suits me perfectly (see here).

What I really want to see is a QoS OS like Nemesis. Perhaps I should try to find time to write it, or at least start the ball rolling. Oh for more hours in the day :)

More mozilla rants

Submitted a mozilla bug report today for the first time. I was trying to access a page and it caused mozilla to lock up taking my X server with it after a minute or two. First time that's happened.


Managed to add more code to my simulator today. Having a pint of beer with my lunch wasn't very condusive to getting work done, but I struggled on regardless :)


Manged to get PRCS to build on my Ultra 10. Looks like there was a problem with the gcc 2.95.3 installation being corrupted when the 3.0 one was installed. In the end I built my own version of 2.95.3 and everything worked. I've reported it to partain, with details of what went wrong, so hopefully that'll fix it. At least for now I can use PRCS on the Ultra 10 now. Next time I'm bored I'll have a look at LaTeX :) How long before Will tells be to go and make everything Arusha compatible though... ;)

Firstly, I really need to tweak my Mozilla setup, as I do not like how Advogato looks under XFree86 4.1.0 with the Windows fonts installed when using Mozilla 0.93. The font is way too big. In addition the diary boxes on the home page are no longer all the same size. Oh for more hours in the day.

Trying to get more work done on my instruction scheduler simulator but lacking the motivation to really get into it. Trying to page in my Python knowledge, as after using it for a few days I was away for two weeks, so I need to sort of relearn it. Anyway, I should try and get the work done, as I want to submit a paper on the work I'm doing at the moment to ISCA 2002, should I have enough work done by early October (the paper deadline is early November).

Spotted a 25yo Glenfarclas for 35 UKP in a shop near here - very tempting :) Actually, if anyone here knows the answer to this I'd be grateful: I have a US keyboard, and want to find a way to map the UK pound sign to a key, such as the windows key, under X (mainly, though for the console I woundn't object either). Any suggestions?

At FPL I saw both Xilinx and Altera come up with some neat looking products. Both are doing processor/FPGA hybrids, with Xilinx putting 4 PowerPCs into a Virtex device and Altera putting ARM and MIPS cores (only one core but what seems to be a better interconnect and some RAM) into an Apex device. Very Sexy.

Long time no Advogato. Oh well. It's one of those things that's easy to put off then forget about once you get out of the habit.

What's changed? Well, I don't spend much time on SWARM these days. I've moved on to more OS research rather than low level processor stuff. I'm just back from FPL'01, where I presented a poster on my reconfigurable processor architecture. seemed to go down well, and had fun in Belfast.

Now I'm trying to write a simulator for the OS stuff in Python. I've only just learned Python, and I'm quite impressed. The simulator is essentially a list manager, so doing this sort of thing in Python is great.

Not done much on the OSS front I'm afraid. I did some hacking on VTWM to add GNOME compliance ;) I mailed off the source to the VTWM maintainer, but I doubt it made it into the source tree. I doubt there's much need for GNOME functionality in VTWM (I don't even use it, I just wrote it to prove a point :). I also wrote some XChat scripts (I've become an IRC user, sorry...) to implement part of the WimpCTCP stuff. At the moment clients that support the FACE CTCP can get my face image (it should return a 16x16 by 4 bpp grey image) and some other info, but I've not figured a neat way of using Perl/GTK from XChat scripts so that I can generate a face window. Anyway, what is there is up on the XChat scripts site. Not really rocket science I'm afraid.

Anyway, I'll try to keep this up to date for a while :)

Codewise I fixed numerous bits in SWARM. Matt, one of my fine office mates, is starting work on an embedded systems project. As part of this he's interested in writing a small RTOS aimed at the ARM, so he's using SWARM as his initial test platform. Over the weekend I added IRQ/FIQ support. All it really needs is some form of timer and it should be enough for a small multitasking OS to run on it.

This is actually of some use to me, as I'll need to use an OS at one point. I'm thinking of using Nemesis as my starting point. Wish me luck :0)

Oh, and I ache today as I fell quite a bit whilst snowboarding yesterday (it was on a dry slope I should point out). Had been doing quite well until yesterday - guess it was overdue pain.

Okay, okay, so my diary entries have been a bit spartan to say the least. Today some fun bits:

  • My DES source code is here.
  • Some nice humour for you to read: Red Meat, Snail Dust, and Bad Tech (though thank goodness Bad Tech finished its Matrix parody - too long).
  • Music madness: new albums out from Blur and U2. Bought the former, the latter will have to wait. The live CD with the Blur SE is cool.
  • Read, if you haven't already, Lingua::Romana::Perligata. Has a coolness to usefulness ratio of way more than one, and also has a point.

Phew. Anyway, SWARM work today - I need to get more done on the copro front. My office mate, Cheese Boy, is starting to learn ARM assembly, so is using SWARM now - useful feedback and feature requests ahoy.

Saw Blur play live on ...Later (BBC live session program hosted by Jules Holland) where they played "Music Is My Radar", "Girls and Boys", and "Song 2". I wasn't that impressed with the single of MIMR, but live it sounds really good. Need to get my hands on Graham Coxon's new album. His first was good, but not something to listen to repeatedly. Apparently the second one is better and more accessable.

For the LettuceHead groupies out there, Adam and I played at the Halt bar last Saturday, and managed not to be thrown out (though we did go under false names just in case...). We played "Their Goes God" by Crowded House and "Misshapes" by Pulp.

Today's gratuitous mention: Hi Neil!


Fixed the bugs in my DES implementation (with some much appreciated help from John) - so now it works correctly. I'll put both the naive version and the optimised version on the web at some point.


Managed to get my software implementation of DES down to have a cycle count per block of 3.3% the naive implementation, and a key setup time 40% of the original. Optimising code is fun :-) By the same BOE calculation I used before, my implementation would achieve a theoretical 2.8 Mbytes/sec on a 1GHz processor. There are no 64 bit values used at all in this implementation now. I ran it on a real StrongARM and the speedup is very noticable.

More PhDs

Congrats to Ian who has submitted his draft dissertation and is heading of to work for Altera next week.

25 Oct 2000 (updated 25 Oct 2000 at 23:39 UTC) »


Been, amoungst other stuff, optimising my DES implemenation today. The key setup time has tripled at the moment (though I have an idea how to get that down), but the number of cycles taken to process a 64 bit block is down to 12% of the original. This was achived by a mixture of static preprocessing, preprocessing the key setup, removing most uint64_t values and using two uint32_t values where possible (my target plaform is the ARM, so 32 bit operations are a Good Thing(tm)), and applying some human optimisation to the bit permutations. So far this has been just using C - I've not needed to use any asm - I've managed to express everything I want so far in C.

Next a little more optimisation of the C version, before I try and apply hardware to some parts of the algorithm (mainly the bit swizling). I have two hardware versions in mind - one a plain partial hardware/software implementation, and one which uses partial evalution to put the key into the round calculations.


Managed to half the key setup time. I've completely removed 64 bit values except as the inputs to the algorithm. By a BOE calculation, it can now process about 0.8Mbytes/sec on a 1GHz XScale/StrongARM, but that's not including cache-misses. Not particularly impressive.


Had to reboot a keyboard today. I think the microcontroller inside had got confused, and the PC it was attached to refused to acknowledge it until I powered off the machine (rebooting it didn't help).

Installed GNAT (the gnu Ada compiler) today - scary. I got flashbacks to when I was being taught Real Time Systems in Ada.

Learned how to use a diablo.

Oh, and I forgot to say congrats to adamd who submitted his PhD dissertation last week. He now seems to have a perpetual smile on his face :-)


Still got a broken DES implementation. Tried various kludges to see if I could get it to work with the test vectors I'd found, but to no avail. But it has the correct timing properties, which is what I'm interested in, so for now I'll just go with what I've got (pressing deadlines...).


iain: Placebo dull? I guess Brian Malco's voice is something you like or hate - forages I couldn't stand Brett Anderson's voice, but eventually came round. I don't think Placebo qualify for boring though. When I say them live the other week the momentum of the show was really good. It dipped a bit with too many slow songs strung together, but came out tops again finishing with Pure Morning, Taste in Me, and Nancy Boy.

On a side note, Lettucehead will hopefully be playing on Saturday - nothing spectacular, just an open stage affair, but it'll be good to play again.


Hmmm. Fixed itself - this, of course, just means it will go wrong again. Went through our second power-supply unit too - I think being continuously plugged in to power the camera overheats the wee things. Now our second camera is without power.

22 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!