TweetFollow Us on Twitter

Books
Volume Number:10
Issue Number:10
Column Tag:Book Reviews

Scanlin on Books

By Mike Scanlin, Mountain View, CA

POWER and PowerPC

By Weiss and Smith

Morgan Kaufmann Publishers, Inc. 1994.

ISBN 1-55860-279-8.

408 pages (hardback).

If you are working on learning PowerPC assembly language, and you want a good, solid technical information that gives you both a base to start with and a reference to return to once you’ve started going, POWER and PowerPC delivers both. It is a very complete look at the POWER and PowerPC architectures and contains information that would be of interest to anyone who really wants to delve into PowerPC 601 programming.

The book covers three main areas: (1) the POWER architecture, (2) the first two POWER implementations, the POWER1 and POWER2, used by IBM in the RS/6000, and (3) the PowerPC architecture and PowerPC 601 implementation. There are other areas which are interesting but which probably aren’t as important to most Macintosh programmers, including: A comparison of the POWER and PowerPC architectures, a comparison of the PowerPC 601 and DEC Alpha 21064, and the IEEE 754 Floating-Point standard.

The best part of this book, in my Mac-centric opinion, are Chapters 7-9, which describe the 601 in detail. It starts off with a discussion of the instruction formats and goes on to show how some of the less-obvious instructions work (like rotate with mask). It then goes on to explain the 601’s pipelines, branch processing and caches. Within each of these discussions the examples are clearly illustrated with sample code fragments. You’ll be able to see where and why pipeline stalls occur (and what you can do to avoid them in some cases), how to optimize your branches and exactly how the combined instruction and data cache works. Understanding these issues is a key part of being able to optimize for the 601 when you need to (in addition to helping you identify why certain code fragments run slower than you would expect).

This book is not a tutorial on how to program in PowerPC assembly language. It is, however, one of those rare technical books that is a pleasure to read for all the right reasons: the examples are clear, the examples are worth studying, the authors know their stuff and, it’s presented in a neatly typeset and illustrated manner. I would recommend it to self-motivated people who want to start learning PowerPC assembly language programming or to anyone working in a high-level language who wants to know more about their underlying processor.

Zen of Code Optimization

By Michael Abrash

The Coriolis Group, Inc. 1994.

ISBN 1-883577-03-9.

449 pages (soft cover, w/disk).

The guru who so many years ago brought us The Zen of Assembly Language has returned. He has now released a new and improved version of the ideas and examples contained in that sacred volume. And he has added new tricks for the latest Intel processors, the 486 and the Pentium.

Now, you are probably asking yourself “Why would I care about a bunch of optimization tricks on Intel processors when I’m a Mac fanatic?” The answer is because there is something for everyone in this book. Even if you ignore all of the Intel assembly code he presents (there is no 68K code at all) you can’t help but be impressed with the methodology he used to determine the optimal instructions as well as the clear (and often times humorous) explanations of the finer points of assembly language programming. Mr. Abrash has a Zen-like understanding of the Intel processors and the environments they live in. He is also a gifted writer who can make an otherwise dry topic come to life. Even though I have personally vowed never to write Intel assembly code, I thoroughly enjoyed both his former Zen book and this latest one.

The author sums up the book’s essence rather well, “This book is the diary of a personal passion, my quest for ways to write the fastest possible software for IBM-compatible computers in C, C++, and assembly language. ... it is a journal of my exploration of the flexible mind in action (with, to be sure, a generous leavening of potent low-level optimization tricks).” This book is the summary of years of effort studying the subtle behavior of Intel processors. And most of it is presented in easy-to-read, story-like prose that is both fun to read and very educational.

The book starts off by giving us the Zen Timer; a little piece of code used throughout that gives you the most precise timings possible of your Intel code fragments. After all, you have to be able to measure your code accurately to know if your latest change really improved things or not.

The next couple of chapters teach you various low-level things you need to know to really optimize for the Intel processors, such as: the prefetch queue cycle-eater, dynamic RAM refresh cycle-eater, and the display adapter cycle-eater. The interaction of these cycle-eaters leads to some surprising results (like you can’t trust the instruction times in the Intel manuals).

Once the basics are understood (and the reader has accepted “assume nothing; time everything”) the book proceeds to apply that knowledge to some real-world problems. In particular, the Boyer-Moore string searching algorithm is studied and optimized. There are many examples of peephole optimizations (like fast multiplication by 5 or 9 with the LEA instruction). There are examples given on how to manipulate common data structures efficiently, such as linked lists.

The last few chapters are devoted to the Pentium. In addition to showing you how many of the 386 and 486 tricks (taught in earlier chapters) will break on the Pentium, there is an in-depth discussion of the Pentium and it’s U-pipe and V-pipe and how to keep them both full most of the time. Sadly, like the 68K family, it is not possible to simultaneously optimize for all members of the Intel family.

As an optimizing assembly language programmer, I found it refreshing to find someone who is both a true master at assembly language programming and at the same time capable of making all the right trade-offs when coding in mixed C and assembly. I would recommend Zen of Code Optimization as a 10 on a scale of 10 if you are working on any Intel processor and I would give it an 8 out of 10 for anyone working on the Macintosh who is interested in writing high performance code.

JPEG: Still Image Data Compression Standard

By Pennebaker and Mitchell

Van Nostrand Reinhold. 1993.

ISBN 0-442-01272-1.

638 pages (hardback).

Ever wonder how those color painting programs manage to store 10MB of pixels in a 1MB file? Well, most of them use JPEG (Joint Photographic Experts Group) image compression. If you’ve ever wanted to know how it works, or implement it yourself, then JPEG: Still Image Data Compression Standard is the book for you.

Written by two members of the JPEG standard committee, this book gives many of the hows and whys of JPEG that are not in the official JPEG specification (which is given in an appendix). There is a good chance that this book will tell you more than you really want to know about JPEG. It contains a LOT of information.

The book is written for everyone, from non-technical people to programmers to mathematicians. But don’t let the inclusion of some non-technical info dissuade you - there is more technical and mathematical info here than you probably care to read. Each section is marked with one of three “technical difficulty” symbols: one for non-technical readers, one for people with intermediate technical skills and one for people with advanced technical skills who are either going to implement a JPEG engine or else just like hard math problems.

The beginning of the book goes over some basic imaging concepts for the uninitiated (such as low-pass filters and the difference between luminance and chrominance). It then introduces you to the Discrete Cosine Transform (DCT) that is the heart of JPEG. This discussion is very complete and certainly makes it clear how both one dimensional and two dimensional DCTs work (with good illustrations and examples). It also explains some of the ‘blocking’ effects you sometimes see with JPEG images.

After the DCT, the book goes on to explain the various JPEG modes of operation (sequential, progressive, lossless and hierarchical) and the syntax of the JPEG data stream. If you’ve read the spec and not been clear on any of those things then this book’s discussion of them will clear them up for you (it certainly did for me).

Once you’ve run your image data through the DCT and quantized it, the last step of JPEG is to entropy encode the quantized values. JPEG allows two methods of entropy encoding: Huffman or arithmetic. The book spends ample time on both methods (several chapters, in fact, including one on probability estimation) and, depending on how much you like math, you’ll come away either really confused or really understanding how it works. (The explanations are clear, but it’s difficult material.)

The last part of the book gives comparisons of performance for the different kinds of JPEG compression, a list of JPEG applications and vendors, a history of JPEG, possible future directions of JPEG and a discussion of non-JPEG compression standards (JBIG, MPEG, fax).

This book is as complete as you could possibly want on the subject of JPEG image compression. It is a must-read for JPEG implementors and recommended reading for those people who like to understand how common algorithms work or who want to know more about imaging algorithms in general.

 
AAPL
$101.20
Apple Inc.
+0.34
MSFT
$46.51
Microsoft Corpora
-0.25
GOOG
$581.32
Google Inc.
+1.37

MacTech Search:
Community Search:

Software Updates via MacUpdate

Apple Digital Camera RAW Compatibility 5...
Apple Digital Camera RAW Compatibility update adds RAW image compatibility to Aperture 3 and iPhoto '11. For more information on supported RAW formats, see here.Version 5.07: Adds RAW camera... Read more
Transmit 4.4.7 - Excellent FTP/SFTP clie...
Transmit is an excellent FTP (file transfer protocol), SFTP, S3 (Amazon.com file hosting) and iDisk/WebDAV client that allows you to upload, download, and delete files over the internet. With the... Read more
Macgo Blu-ray Player 2.10.8.1715 - Blu-r...
Macgo Mac Blu-ray Player can bring you the most unforgettable Blu-ray experience on your Mac. Overview Macgo Mac Blu-ray Player can satisfy just about every need you could possibly have in a Blu-ray... Read more
Capture One Pro 8.0.0.433 - RAW workflow...
Capture One Pro 8 is a professional RAW converter offering you ultimate image quality with accurate colors and incredible detail from more than 300 high-end cameras -- straight out of the box. It... Read more
Adobe Acrobat Pro 11.0.09 - Powerful PDF...
Adobe Acrobat allows users to communicate and collaborate more effectively and securely. Unify a wide range of content in a single organized PDF Portfolio. Collaborate through electronic document... Read more
Adobe Reader 11.0.09 - View PDF document...
Adobe Reader allows users to view PDF documents. You may not know what a PDF file is, but you've probably come across one at some point. PDF files are used by companies and even the IRS to... Read more
iFFmpeg 4.6.1 - Convert multimedia files...
iFFmpeg is a graphical front-end for FFmpeg, a command-line tool used to convert multimedia files between formats. The command line instructions can be very hard to master/understand, so iFFmpeg does... Read more
NTFS 11.3.62 - Provides full read and wr...
Paragon NTFS breaks down the barriers between Windows and OS X. Paragon NTFS effectively solves the communication problems between the Mac system and NTFS, providing full read and write access to... Read more
OS X Yosemite 10.10 DP8 - Developer Prev...
Note: This is a Developer Preview. You must be a registered Apple Mac Developer to download this update. You can also sign up for the free OS X Beta Program to download and preview public beta... Read more
FotoMagico 4.5 - Powerful slideshow crea...
FotoMagico lets you create professional slideshows from your photos and music with just a few, simple mouse clicks. It sports a very clean and intuitive yet powerful user interface. High image... Read more

Latest Forum Discussions

See All

Readdle Adds Tons of iOS 8 Updates for A...
Readdle Adds Tons of iOS 8 Updates for All Readdle Apps Posted by Jessica Fisher on September 17th, 2014 [ permalink ] With the iOS 8 dropping today, Readdle has dramatically | Read more »
Let it Rainbow Review
Let it Rainbow Review By Jennifer Allen on September 17th, 2014 Our Rating: :: SIMPLE COLORSiPhone App - Designed for the iPhone, compatible with the iPad A little too simple for extended sessions, Let It Rainbow is still a cute... | Read more »
Goat Simulator (Games)
Goat Simulator 1.0.1 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.1 (iTunes) Description: Goat Simulator is the latest in goat simulation technology, bringing next-gen goat simulation to YOU. You no longer have to... | Read more »
Almightree: The Last Dreamer Review
Almightree: The Last Dreamer Review By Blake Grundman on September 17th, 2014 Our Rating: :: CLIMBING HIGHERUniversal App - Designed for iPhone and iPad Can this Zelda-inspired platformer reach new heights of success?   | Read more »
Zynga Unveils First Look at Looney Tunes...
Zynga Unveils First Look at Looney Tunes Dash! Posted by Ellis Spice on September 16th, 2014 [ permalink ] Be vewy, vewy qwiet. I’m hunting wunners featuwing wabbits, and luckily, it’s duck season wunner season. | Read more »
Guardians on the Go – How to Connect to...
At this point I’m relatively certain most of the country is familiar with Destiny. And for those looking to augment their game a bit, Bungie has changed their Bungie Mobile Companion App to Destiny Companion. | Read more »
Kunin Review
Kunin Review By Jordan Minor on September 16th, 2014 Our Rating: :: SHURIKEN DO ITUniversal App - Designed for iPhone and iPad Kunin is a nervous test of ninja reflexes.   Developer: Dodreams Price: FREE Version Reviewed: 1.0.1... | Read more »
A Major ‘Space Wolves’ Content Expansion...
A Major ‘Space Wolves’ Content Expansion is Now Available for Warhammer 40,000: Carnage Posted by Jessica Fisher on September 16th, 2014 [ permalink ] | Read more »
4 KEMCO Titles are Just $0.99 for a Limi...
4 KEMCO Titles are Just $0.99 for a Limited Time Posted by Jessica Fisher on September 16th, 2014 [ permalink ] KEMCO RPGs Destiny Fantasia, Infinite Dunamis, Bonds of the Sk | Read more »
Introducing Flash, the Latest Wearable F...
Introducing Flash, the Latest Wearable Fitness Monitor from Misfit Posted by Jessica Fisher on September 16th, 2014 [ permalink ] The Misfit Flash is the newly-released fitness and sleep monitor from | Read more »

Price Scanner via MacPrices.net

Roundup of Apple refurbished iPad Airs and iP...
Apple is offering Certified Refurbished iPad Airs for up to $140 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free. Stock tends to come and go with some of these... Read more
Sprint offers 16GB iPad mini for $199.99 with...
Sprint is offering 1st generation 16GB iPad minis for $199.99 with a 2-year service agreement. Standard MSRP for this iPad is $429. Their price is the lowest available for this model. Read more
2.5GHz Mac mini remains on sale for $549, sav...
B&H Photo has the 2.5GHz Mac mini on sale for $549.99 including free shipping. That’s $50 off MSRP, and B&H will also include a free copy of Parallels Desktop software. NY sales tax only. Read more
Apple refurbished iMacs available for up to $...
The Apple Store has Apple Certified Refurbished iMacs available for up to $300 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. These are the best prices on... Read more
13″ 2.5GHz MacBook Pro offered for $100 off M...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $999.99 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Read more
Free GIMP Professional Grade Graphics App Ver...
The latest 2.8.14 version of the oddly-named GIMP (acronym for: GNU Image Manipulation Program) open source, high-end image editing and creation alternative to Adobe’s Photoshop and refuge from... Read more
Apple Announces Record Pre-orders for iPhone...
Apple has released metrics showing a record number of first day pre-orders of iPhone 6 and iPhone 6 Plus, with over four million sold in the first 24 hours. Demand for the new iPhones exceeds the... Read more
10% off iPhone 6 and 6 Plus Otterbox cases
Get 10% off on popular Otterbox iPhone 6 and iPhone 6 Plus cases at MacMall through September 19th. Use code OTTERBOX10 to see the discount. Read more
15-inch MacBook Pros on sale for up to $125 o...
Amazon has the new 2014 15″ Retina MacBook Pros on sale for up to $125 off MSRP including free shipping: - 15″ 2.2GHz Retina MacBook Pro: $1899.99 save $100 - 15″ 2.5GHz Retina MacBook Pro: $2374... Read more
27-inch 3.2GHz iMac on sale for $1698, $101 o...
Abt has the 27″ 3.2GHz iMac on sale for $1698 including free shipping. Their price is $101 off MSRP. Read more

Jobs Board

*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.